十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1.到jboss-4.2.3.GAserverdefaultdeployjboss-web.deployer下,打开server.xml,修改默认的8080端口为8081.
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、虚拟空间、营销软件、网站建设、江口网站维护、网站推广。2.然后到jboss-4.2.3.GAserverdefaultconfjboss-service.xml 修改相应的同那个监控软件自带的jboss冲突的端口.
3.然后到jboss-4.2.3.GAbin下重新运行run.bat 即可重新启动了.
参考文档:http://chris-wang.iteye.com/blog/285668
2JBoss的两种类隔离机制配置说明EAR or WAR的类将按照以下顺序装载:
1. WEB-INF/lib (for WARs)
2. server/default/lib下的jar包
3. tomcat的jar包server/default/deploy/jbossweb-tomcatxxx.sar,与server/default/lib将混合在一起,不区别顺序。
在部署应用到JBoss服务器时,通常见到的问题就是应用所带的jar包与容器自己的jar包版本不同导致的冲突,以及应用间jar包导致的冲突,JBOSS提供两种隔离机制:
1. 部署包之间的隔离
2. 覆盖JBoss Server的类的隔离
A部署包之间的隔离机制
对于.ear部署包,我们应该修改jboss-app.xml如下:
对于.war部署包,在jboss-web.xml中定义如下:
在JBoss 4.2.1中
在.sar部署包中,在jboss-service.xml定义如下:
示例中,com.example:archive=unique-archive-name代表jar仓库的对象名objectName ,其中,com.example可以随意取,unique-archive-name 就用部署包的名字即可,例如com.example:archive=helloworld.sar,保证这一串唯一即可。而com.example将出现在JMX-Console (http://localhost:8080/jmx-console/)列出的节点上(每个节点为一个LoaderRepository domain:jar参考的域概念,其实就是一个所有jar容器仓库的分组概念)
对于部署包内内嵌了其他部署包,只有最上层的部署描述配置才起作用,例如:
.ear中包含了.sar和.war,这只有.ear中的META-INF/jboss-app.xml 中定义的隔离范围才会起作用。
.sar中包含了.war,则只有.sar META-INF/jboss-service.xml中定义的隔离范围才起作用
B覆盖JBoss Server的类的隔离
对于jboss-app.xml:
对于jboss-web.xml:
jboss-service.xml:
参考文档:http://developer.51cto.com/art/201001/179092.htm
3 Jboss jar包冲突及jar加载顺序 将一个完整的.war包部署到Jboss容器中,启动后报如下错误:15:04:48,632 ERROR [ContextLoader] Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name \'org.apache.activemq.xbean.XBeanBrokerService#0\' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.slf4j.MDC.getCopyOfContextMap()Ljava/util/Map; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) at java.security.AccessController.doPrivileged(Native Method)
$find . -name slf4j*.jar ./bin/configuration/org.eclipse.osgi/bundles/24/1/.cp/slf4j-log4j12-1.4.3.jar ./bin/configuration/org.eclipse.osgi/bundles/24/1/.cp/slf4j-api-1.4.3.jar ./server/default/deploy/configuration/org.eclipse.osgi/bundles/14/1/.cp/slf4j-log4j12-1.4.3.jar ./server/default/deploy/configuration/org.eclipse.osgi/bundles/14/1/.cp/slf4j-api-1.4.3.jar ./server/default/deploy/etl_sngps.war/WEB-INF/lib/slf4j-api-1.6.1.jar ./server/default/deploy/etl_sngps.war/WEB-INF/lib/slf4j-log4j12-1.6.1.jar ./server/default/deploy/jboss-web.deployer/configuration/org.eclipse.osgi/bundles/14/1/.cp/slf4j-log4j12-1.4.3.jar ./server/default/deploy/jboss-web.deployer/configuration/org.eclipse.osgi/bundles/14/1/.cp/slf4j-api-1.4.3.jar
查看Jboss jar加载文档:
? 接下来创建org.jboss.system.ServiceController的MBean实例. ServiceController管理JBoss MBean服务的生命周期.
2、D:jbossserverdefaulttmpdeploy
参考文档:http://blog.csdn.net/mypop/article/details/6617914
4 Windows怎么查看端口占用情况在windows命令行窗口下执行:
C:>netstat -aon|findstr "9050" TCP 127.0.0.1:9050 0.0.0.0:0 LISTENING 2016 C:>tasklist|findstr "2016" tor.exe 2016 Console 0 16,064 K 5 tomcat更改端口
(1)、在Tomcat安装根目录下的字文件夹conf中找到文件server.xml
(2)、将其用记事本程序打开,找到这段文字:
将以上文字中的Connector port="8080"中的8080更改为8888即可,重新启动Tomcat,使用http://localhost:8888登录,发现问题已解决。
参考文档:http://blog.sina.com.cn/s/blog_4d83777b0100fgp0.html
6tomcat修改manager修改tomcat-users.xml文件,在其中添加管理员角色(manager),以及管理员用户(admin)和密码(admin),修改后如下:
最后,重启tomcat,在进入管理页面的时候,用管理员用户admin和密码admin,登陆ok。
7 Tomcat 6 数据源配置方法1:
修改$CATALINA_HOME/conf/context.xml文件,加入如下代码:
把MYSQL驱动拷贝到TOMCAT的lib目录(我用的是mysql-connector-java-5.1.6-bin.jar)
不必像官方文档所说,在web应用的web.xml中配置
java代码如下:
Context initCtx = new InitialContext(); javax.sql.DataSource ds = (javax.sql.DataSource)initCtx.lookup("java:comp/env/jdbc/mysql"); Connection conn = ds.getConnection(); Context元素代表一个web应用,运行在某个特定的虚拟主机上。你可以在一个Host元素中嵌套任意多的Context元素。每个Context的路径必须是惟一的,由path属性定义。
若针对某个WEB应用配置数据源,可在$CATALINA_HOME/conf/server.xml文件中的
方法2:
我们可以把 Context 片断以
%CATALINA%/webapps/test/WEB-INF/web.xml
%CATALINA%/webapps/test/test.jsp
<%@ page language="java" pageEncoding="GB2312"%> <%@ page import="java.sql.*, javax.sql.*, javax.naming.*" %> <% Connection conn = null; String url = "jdbc:mysql://localhost:3306/hibernate"; String user = "root"; String password = "admin"; try { InitialContext ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/TomcatHibernate"); conn = ds.getConnection(); if(conn != null) { out.println("数据源jdbc/hibernate配置成功!"); } } catch(Exception e) { out.println("数据源jdbc/hibernate配置失败!" + e); } finally { if(conn != null) conn.close(); } %>
这种解决方法的好处是:Context可以独立配置,不用修改Tomcat默认的server.xml context.xml等。
参考文档:http://jetshi0125.blog.51cto.com/392919/110769/
8 TOMCAT6全局数据源的配置1、在TOMCAT_HOME/conf/server.xml中的
以上为MSSQLSERVER数据库,url为数据连接地址,请据自己IP地址修改
2、对于全局数据源的引用,在TOMCAT_HOME/conf/context.xml中添加如下内容:
private void initDAO() { try { Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); DataSource ds = (DataSource) envCtx.lookup("jdbc/bn"); conn = ds.getConnection(); } catch(Exception e) { e.printStackTrace(); } } 如果是使用 Spring HibernateDaoSupport
参考文档:http://blog.csdn.net/gl74gs48/article/details/1832585
总结一下,这里主要介绍了集中关于jboss相关配置及类加载的内容。后期填加些tomcat的相关内容。