注意这里的版本为jboss-5.1.0.GA版本,如果你部署工程的时候遇到问题(一般都是很纠结很纠结的问题,我是google了好久才成功的),google到的解决方法里貌似4.0以上版本是大概通用的。
1、启动jboss,因为启动信息非常多,而且出问题的话有很多日志,直接运行bin目录里的run.bat的话因为窗口大小有限,所以日志显示不全的问题,所以我运行一般都是在cmd里面用"run.bat > log.txt"(不包括引号)命令的方法启动将输出重定向到log.txt里面方便分析。
话说一般的servlet和jsp的部署方式跟Tomcat的方式无差异,只须将app打包为war文件直接copy到 \jboss-5.1.0.GA\server\default\deploy目录即可,支持热部署。但是部署struts的话可能有点问题,我的工程是采用struts-1.3.10版本,其他版本不清楚,大致通用。
首先一般先复制lib文件,将struts目录里lib文件夹下的jar拷贝到工程的\WEB-INF\lib\目录下,如果你的工程lib目录不在web-inf文件夹下,请拷贝。然后build工程,生成war文件。
然后如果将此时生成的war文件放到deploy目录里,可能会出现以下问题,对应的解决方法也在下面:
1。部署时日志中出现以下问题:
org.jboss.xb.binding.JBossXBRuntimeException: Failed to create a new SAX parser
at org.jboss.xb.binding.UnmarshallerFactory$UnmarshallerFactoryImpl.newUnmarshaller(UnmarshallerFactory.java:100)
at org.jboss.web.tomcat.service.deployers.JBossContextConfig.processContextConfig(JBossContextConfig.java:549)
at org.jboss.web.tomcat.service.deployers.JBossContextConfig.init(JBossContextConfig.java:536)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:279)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.StandardContext.init(StandardContext.java:5436)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4148)
at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:310)
at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:142)
at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461)
at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
at org.jboss.web.deployers.WebModule.start(WebModule.java:97)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
可能的解决方法:
如果生成的war中lib目录下有xerces.jar, xml-apis.jar两个文件,删除之。
2。浏览器中访问应用时出现以下问题(日志中也会记录此问题):
exception
javax.servlet.ServletException: java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/jasper/servlet/JasperLoader) previously initiated loading for a different type with name "javax/servlet/http/HttpServletRequest" org.apache.jasper.servlet.JspServlet.service(JspServlet.java:257) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
解决方法:
删除war文件中lib目录下的servlet-api.jar。
No related posts.
以上关联文章由 Yet Another Related Posts Plugin 提供支持。
Tags: Struts JBoss