软件测试

简单聊聊jndi配合5大容器

2020-08-24  本文已影响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

上一篇下一篇

猜你喜欢

热点阅读