一.几款servlet容器对比:jetty,Tomcat,JBoss
二.JBOSS相关问题解决
1.JBOSS下载安装
2.处理jboss-as-7.1.1.Final与jdk1.8及1.8以上版本的不兼容问题
并解决多个版本的jdk的切换问题
3.解决启动JBOSS的standalone.bat时端口占用冲突问题
4.设置外网访问
5. 添加用户
6.在eclipse-jee中配置JBoss
7.在JBoss中配置mysql数据库连接池
jetty VS Tomcat
https://baike.baidu.com/item/jetty/370234?fr=aladdin#2
Jetty更满足公有云的分布式环境的需求,而Tomcat更符合企业级环境
jboss
说实话平时做一些小的开发设计使用的一般为tomcat,jetty也早就想尝试一下了,不都说“优雅的jetty”吗,然而奈何学校的课设需要使用jboss,对jboss的耳闻是因为去年看了《大型分布式网站技术架构-核心原理与案例分析》《大型分布式网站技术架构-设计与实践》这两本书后知道了早些年的淘宝网是使用jboss中间件的。眼看着课设的日子就要来了,万般无奈的下了个jboss,然而没有想到的是,它貌似许久都没有更新维护了,而且对jdk的支持貌似只达到了1.7版本,我原本的9.0.4在jboss中根本没法用。。。于是只好又装了一个1.7版的jdk,而且1.8的jdk它也是不支持的,更不要说1.9及现在的1.12了。。。
好想吐槽一下大学的课程:什么时候可以不要这么过时又无聊:)
下载网址为 http://www.jboss.org/jbossas/downloads/
测试JBoss
1.运行脚本jboss7.1.1\bin\standalone.bat完成启动。
2.访问http://127.0.0.1:8080/,出现 Welcome to AS 7访问界面,说明JBoss启动成功
https://blog.csdn.net/tiegenZ/article/details/77881138
解决:只能安装小于1.8版本的jdk,例如1.7版本。
最好单独建立JAVA_HOME环境变量,在Path中使用JAVA_HOME
这样一来可以每次仅修改JAVA_HOME来达到jdk的切换
测试JBoss
1.运行脚本D:\jboss7.1.1\bin\standalone.bat完成启动。
2.访问http://127.0.0.1:8080/,出现 Welcome to AS 7访问界面,说明JBoss启动成功
在运行jboss7.1.1\bin\standalone.bat出错
错误如下:
JBAS014777: Services which failed to start: service jboss.serverManagement.controller.management.http: org.jboss.msc.service.StartException in service
jboss.serverManagement.controller.management.http: Address already in use: bind /127.0.0.1:9990
解决方案:
首先在不改动JBOSS启动端口的情况下,尝试关闭占用了该端口的windows服务:
C:\Users\lenovo>
netstat -ano | find ":9990"
TCP 127.0.0.1:9990 0.0.0.0:0 LISTENING 4100
C:\Users\lenovo>tasklist | findstr 4100
NvNetworkService.exe 4100 Services 0 2,636 K
C:\Users\lenovo>taskkill /pid 4100
错误: 无法终止 PID 为 4100 的进程。
原因: 拒绝访问。
C:\Users\lenovo>taskkill -t /pid 4100
错误: 无法终止 PID 4100 (属于 PID 836 子进程)的进程。
原因: 拒绝访问。
C:\Users\lenovo>tasklist | findstr 836
services.exe 836 Services 0 7,652 K
svchost.exe 2836 Services 0 10,656 K
Notes:实用taskkill
的-ft
选项时需注意:pid值较小的关键系统进程不可以随意杀死!!!
既然无法通过杀死占用了9990端口的进程的方式修复该问题,那么下面只能通过修改jboss.serverManagement.controller.management的启动端口的方式修复此问题:
jboss7.1.1\standalone\configuration\standalone.xml
将9990端口改为一个其它未被占用的port。
C:\Users\lenovo>
netstat -ano | find ":9991"
C:\Users\lenovo>
通过上述查找可发现9991port没有被占用,因此可将port="${jboss.management.http.port:9990}"
中的9990改为9991.
最后成功修复该问题:
JBoss安装完成后,默认只能本地访问(即:只有127.0.0.1/localhost或http://localhost:8080能访问),如果想让其他人也可以访问你的网页,需要修改JBoss的配置文件,即修改standalone.xml,增加本机Web地址的内容。
(1). 打开JBOSS配置文件:D:\jboss7.1.1\standalone\configuration\standalone.xml
(2). 在
之间,增加一个interface节点,节点内容如下:
接着,修改socket-binding-group节点的default-interface属性的为any
修改完后,重启JBoss7.1就可以用外网的IP来访问了。
添加用户程序:
\jboss7.1.1\bin\add-user.bat
.bat:windows ,.sh:linux
访问地址:
http://127.0.0.1:
具体步骤:
访问该Web服务器时,提示新增用户。可在服务端执行add-user.bat(在Jboss主目录下的bin目录中) 来添加管理员用户。
双击执行add-user.bat
What type of user do you wish to add?
a) Management User (mgmt-users.properties)
b) Application User (application-users.properties)
(a):a
//输入a后回车
Enter the details of the new user to add.
Realm (ManagementRealm) ://回车,选用默认
Username :admin
//填写管理员用户名admin
Password ://填写管理员密码123456(输入后不会被现实出来)
Re-enter Password :
The username ‘admin’ is easy to guess
Are you sure you want to add user ‘admin’ yes/no?yes
About to add user ‘admin’ for realm ‘ManagementRealm’
Is this correct yes/no?yes
Added user ‘admin’ to file ‘D:\jboss7.1.1\standalone\configuration\mgmt-users.properties’
Added user ‘admin’ to file ‘D:\jboss7.1.1\domain\configuration\mgmt-users.properties’
请按任意键继续. . .
添加管理员后,重新启动Jboss后访问http://127.0.0.1:9991/console
,会弹出要求输入用户名和密码的页面,注意我在前面由于jboss console与windows中服务的端口冲突问题,修改了jboss console port为9991,其原本默认设置为9990.
为了实现在eclipse-jee中对JBoss的控制,可以将JBoss的启动和停止添加到eclipse-jee中。启动eclipse-jee后,进入菜单Window-> Preferences-> Server -> Runtime Environments,
点击右侧的Add选项即可添加servlet容器。
Eclipse Java EE Developer Tools https://marketplace.eclipse.org/content/eclipse-java-ee-developer-tools-0
目前为止在上述网址上下载eclipse-jee已经不支持配置JBoss7.1了,其支持的中间件如下:
只有使用老师下发的安装包才可以配置JBoss7.1
以上步骤完毕后,在Servers视图内会有JBoss服务器出现。选中JBoss7.1Runtime Server,在右键菜单中点击Start,JBoss服务器开始启动。若浏览器可以访问http://127.0.0.1:8080/,则配置成功。
标签,里面应该已经有一个默认的datasource:ExampleDS,现在加入我们的mysql的datasource:配置文件standalone.xml中的datasource标签
接下来,在
的drivers标签中进行配置。
配置文件 standalone.xml中的driver标签
com.mysql.jdbc.jdbc2.optional.MysqlXADataSource