(转)Tomcat迁移JBoss杂症—不识别及不能解析web.xml

本文介绍了在将tomcat下的web工程迁移到jboss下面时遇到的问题
背景:
Tomcat 7.0
JBoss AS 4.2.2
IED: Eclipse Java EE IDE for Web Developers. Version: Luna Release (4.4.0)
 
问题一:不能添加项目到JBoss里
1.原因及解决办法:
如果在tomcat下面创建的web项目是基于Dynamic Web Module 3.0,JBoss是不支持2.5以上的,所以需要在project属性的project facets中修改Dynamic Web Module的版本的2.5,然后你就以为行了么?too young
2.把target runtime 修改为JBoss的实例server.
3.修改你的web.xml,开始用3.0的时候生成的web.xml,里面的dtd等文件是3.0版本的,现在需要改成2.5版本。
如下:
[java] view plain copy
 
 print?
  1. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  2.         xmlns="http://java.sun.com/xml/ns/javaee"   
  3.         xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"   
  4.         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"   
  5.         version="2.5">  

注意不要在>前面加“/”哦,注意要在文件最后加上</web-app>哦。
保存。
4.刷新项目,然后就可以添加到JBoss里面了,如果幸运,就可以跑起来了,欢快地跑。如果还有问题,往下看~
 
问题二:JBoss报错:不能解析web.xml
1.错误代码:
[html] view plain copy
 
 print?
  1. org.jboss.deployment.DeploymentException: Failed to parse WEB-INF/web.xml; - nested throwable: (org.jboss.deployment.DeploymentException: expected only one url-pattern tag)  

这是啥问题?expectd only one url-pattern tag,期待只有一个url标签。
2.检查web.xml,发现里面一个servlet的定义使用了一个servlet对应多个url,所以出现这个问题。(但是tomcat是认可的 。)
原:
[html] view plain copy
 
 print?
  1. <!-- 配置一些静态文件 -->  
  2. <servlet-mapping>  
  3.   <servlet-name>default</servlet-name>  
  4.   <url-pattern>*.js</url-pattern>  
  5.   <url-pattern>*.css</url-pattern>  
  6.   <url-pattern>*.gif</url-pattern>  
  7.   <url-pattern>*.png</url-pattern>  
  8.   <url-pattern>*.jpg</url-pattern>  
  9. </servlet-mapping>  

拆开写,改为:
[html] view plain copy
 
 print?
  1. <!-- 配置一些静态文件 -->  
  2. <servlet-mapping>  
  3.   <servlet-name>default</servlet-name>  
  4.   <url-pattern>*.js</url-pattern>  
  5. </servlet-mapping>  
  6. <servlet-mapping>  
  7.   <servlet-name>default</servlet-name>  
  8.   <url-pattern>*.css</url-pattern>  
  9. </servlet-mapping>  
  10. <servlet-mapping>  
  11.   <servlet-name>default</servlet-name>  
  12.   <url-pattern>*.gif</url-pattern>  
  13. </servlet-mapping>  
  14. <servlet-mapping>  
  15.   <servlet-name>default</servlet-name>  
  16.   <url-pattern>*.png</url-pattern>  
  17. </servlet-mapping>  
  18. <servlet-mapping>  
  19.   <servlet-name>default</servlet-name>  
  20.   <url-pattern>*.jpg</url-pattern>  
  21. </servlet-mapping>  

3.然后就妥妥的跑起来了。
 
摘自:http://blog.csdn.net/aitcax/article/details/41649219
原文地址:https://www.cnblogs.com/antyi/p/5980711.html