美文网首页软件测试
简单聊聊jndi配合5大容器

简单聊聊jndi配合5大容器

作者: 我心悠然 | 来源:发表于2020-08-24 12:06 被阅读0次

    应工作要求,今天要测试jndi中间件。我看了网上很多关于jndi的操作介绍,我主要写一下springboot,tomcat,jboss,weblogic,jetty五种容器下对jndi的支持。

    JNDI提供了一种统一的方式,可以用在网络上查找和访问服务。通过指定一个资源名称,该名称对应于数据库或命名服务中的一个记录,同时返回数据库连接建立所必须的信息。其实我不是特别懂这些描述,我的理解是一个数据库的配置,只要调用了这个名称,就可以自动链接到对应的数据库,进行操作。

    话不多说,官方内容大家可以去这里看下http://tomcat.apache.org/tomcat-5.5-doc/jndi-resources-howto.html

    先说第一个springboot。我用的是springboot2.x版本

    1、建立一个Springboot项目

    2、添加JndiConfig.java(用来放置jndi配置)

    url, username, password需要配置自己的,driverClassName如果6.0以下去掉cj.

    3、项目调用代码:

    5、使用Springboot启动应用。

    Demo代码地址:https://github.com/lunacai/canace-jndi-spring-demo

    第二个tomcat

    1、用Springboot新建tomcat项目

    2、修改Tomcat安装目录下的%TOMCAT_HOME%/conf/context.xml文件,在<Context>...</Context>中间加入以下内容(注:非项目里面)

    url, username, password需要配置自己的,driverClassName如果6.0以下去掉cj.

    3、项目中application.properties添加: spring.datasource.jndi-name=java:comp/env/jdbc/mysql

    4、项目中代码调用:

    5、启动的时候,使用tomcat启动应用。

    Demo代码地址: https://github.com/lunacai/canace-jndi-tomcat-demo

    第三个jboss,这个是一个折磨我很久的容器,最大的问题是jdk只支持1.7版本。

    1、下载并启动jboss,我下载的是JBoss AS 7.1.0.CR1b;下载地址:https://jbossas.jboss.org/downloads/

    (注意,jboss详细介绍地址:https://www.cnblogs.com/jaderoy/p/6744468.html

    2、写好jndi的应用,并且打成war包,将war包是放在JBoss AS 7.1.0.CR1b/standalone/deployments下面的

    3、配置jboss里面的jndi

    第一步:修改{jbosshomw}/standalone/configuration/standalone.xml文档,新增红框的内容

    第二步:在modules/com下面新建mysql/main目录,然后在目录下新增文档module.xml和对应链接mysql的jar包

    第三步:编辑第二步中新建的module.xml,对应path的jar就是你放在目录下的jar名称

    4、新建Java工程,然后把Java工程变成maven。然后在pom中配置对应的依赖

    用jboss启动包要达成war

    5、在工程的web.xml文件中新增(注:webapp/WEB-INF/web.xml需要自己新建)

    6、建立链接数据源操作

    7、调用外部接口代码:(注意:请求链接的拼凑方式是:curl -s 'http://localhost:8080/JBossServletDemo/?index=select')

    错误信息1:

    解决方法:用下载的jboss-modules-1.1.5.GA.jar替换原来主目录下的jboss-modules.jar并重名为jboss-modules.jar

    jboss-modules-1.1.5.GA.jar下载地址:http://www.java2s.com/Code/Jar/j/Downloadjbossmodules115gajar.htm

    错误信息2:

    切换jdk到1.7版本

    注意:jboss7需jdk1.7的的环境才能支持

    mac电脑支持多个jdk切换,参考地址:https://www.cnblogs.com/wenrisheng/p/8079161.html

    1、cd ~ 

    2、open -e .bash_profile #打开.bash_profile文件,配置以下内容:

    3、source .bash_profile #设置配置立即生效,验证结果如图:

    错误信息3:

    出现这个问题主要是配置不对,modules/com配置名称和standalone没对应

    错误信息4:

    因为配置的mysql版本过高,jboss是jdk1.7支持的,所以mysql的版本也要用1.7的jdk

    demo代码地址:https://github.com/lunacai/canace-jndi-jboss-demo

    第四个weblogic

    1、下载并且安装weblogic,下载地址:https://www.oracle.com/middleware/technologies/fusionmiddleware-downloads.html

    (安装参考:https://blog.csdn.net/weixin_40102675/article/details/88180647,注意:weblogic 14的对应的JDK需要1.8,太高的会不支持)

    2、启动weblogic(启动文件地址: /wls1411/user_projects/domains/base_domain/bin/startWeblogic.sh),打开网页:http://127.0.0.1:7001/console/login/LoginForm.jsp,配置jndi,配置链接如下:https://www.cnblogs.com/elfin/p/11424536.html(注意配置jndi时,记得测试下数据库的链接)

    3、新建springboot项目,选择jdk1.8,打包war的web项目,代码配置:

    jndi-name要和weblogic里面配置的一致

    4、启动的时候,使用Weblogic启动应用。

    Demo代码地址:https://github.com/lunacai/canace-weblogic-jndi-demo

    第五个jetty:

    1、下载并且安装jetty;下载地址:https://www.eclipse.org/jetty/download.html(我下载的是.tgz)

    2、启动根目标下的start.jar,查看是否安装正确

    注意:如果遇到下面的问题,请重新下载新的包。。。

    3、配置在jetty中配置jndi数据源,修改配置文件{jetty安装目录}/etc/jetty.xml,文件中添加内容:

    4、添加内容之后在{jetty安装目录}/lib/ext目录下,添加需要用到的jar包,我这边使用的是c3p0,所以添加jar如图:(详细配置地址:https://www.eclipse.org/jetty/documentation/current/jndi-datasource-examples.html#mysql-pooled-datasource

    5、新建一个springboot项目,选择jdk1.8,打包war的web项目,代码配置:

    其中web.xml添加以下内容,其他和上面配置差不多

    6、Spring项目通过jetty本地启动。

    Demo代码地址:https://github.com/lunacai/canace-jndi-jetty-demo

    相关文章

      网友评论

        本文标题:简单聊聊jndi配合5大容器

        本文链接:https://www.haomeiwen.com/subject/mgagdktx.html