tomcat迁移到weblogic的几个问题
第1个问题:
异常描述:VALIDATION PROBLEMS WERE FOUND problem: cvc-enumeration-valid: string value '3.0' is not a valid enumeration value for web-app-versionType in namespace http://java.sun.com/xml/ns/javaee:<null>
因为创建项目的时候用的是JAVAEE6,所以生成web.xml文件的时候是这样的:
- <web-app version="3.0"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
weblogic10.3.6并不支持web-app_3_0.xsd的定义。所以报错了。
改为如下就ok了:
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
或者部署到weblogic 12。
第2个问题:
异常描述:
Caused by: weblogic.management.DeploymentException: [HTTP:101170]The servlet default is referenced in servlet-mapping *.js, but not defined in web.xml.
原因:用默认servlet处理静态资源。
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
每个web容器都有一个默认servlet,在tomcat默认servlet的名字是:defalut。而在weblogic是:FileServlet。下面列出各容器的默认servlet的名字
Tomcat, Jetty, JBoss, and GlassFish 默认 Servlet的名字"default" WebLogic 默认 Servlet的名字 "FileServlet" ,WebSphere默认 Servlet的名字 "Simpledefault" 。
将上面的default改成FileServlet就可以了。
第3个问题:
异常描述:
Annotation-specified bean name 'containerTransactionType.Factory' for bean class [com.sun.java.xml.ns.javaee.ContainerTransactionType$Factory] conflicts with existing, non-compatible bean definition of same name and class [com.sun.java.xml.ns.j2Ee.ContainerTransactionType$Factory]
原因:
mvc-dispatcher-servlet.xml里有这样一个配置,
<!-- 需要扫描的标注了@Controller的类 -->
<context:component-scan base-package="com">
<context:include-filter type="regex"
expression=".*.action.*" />
<!-- 这里排除service,防止事务失效 -->
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
</context:component-scan>
我的包名是com.公司名.模块名。由于weblogic的包里也有以com开头action结尾的包,spring把它的包也扫描了,并注入容器。出现了同名的bean。所以报错。
解决方法, 将<context:component-scan base-package="com">中包名加一层, 改成: <context:component-scan base-package="com.公司名">。
第4个问题:
异常描述:
Caused by: java.lang.Throwable: Substituted for missing class org.springframework.beans.factory.BeanCreationException - Error creating bean with name 'ditemAction': Injection of autowired depende
ncies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.jfpal.riskmanage.item.service.IDitemService
这是在createing 控制器 ‘ditemAction’时出的错。原因是无法注入属性com.jfpal.riskmanage.item.service.IDitemService 。代码肯定没问题的,tomcat上运行正常。
经过分析,断定spring没扫描com.jfpal.riskmanage.item.service.IDitemService 所在的包。
然后查看web.xml,发现如下配置
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext*.xml</param-value>
</context-param>
将其改为
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml,classpath:applicationContext-myBatis.xml</param-value>
</context-param>
后面那个数据源的配置。改后部署成功。原因是weblogic和tomcat解析<param-value>有点不一样。
第5个问题:
访问项目时出错,报404,说找不到**/**/dwz.frag.xml。查看web.xml,没有配置xml静态资源的访问,加上如下配置
<servlet-mapping>
<servlet-name>FileServlet</servlet-name>
<url-pattern>*.xml</url-pattern>
</servlet-mapping>
至此迁移成功。
原作者链接:http://itindex.net/detail/54276-tomcat-weblogic-%E9%97%AE%E9%A2%98
http://www.iteye.com
tomcat迁移到weblogic的几个问题的更多相关文章
- tomcat 迁移到weblogic 问题
问题1: Caused by: java.lang.UnsupportedClassVersionError: com/audaque/datadiscovery/soap/service/impl/ ...
- [置顶] 将项目从tomcat 迁移到JBoss
注:针对的是jboss5.0,其它版本没有测试过 ,主要参考了:http://www.diybl.com/course/3_program/java/javajs/20100719/460908.ht ...
- Tomcat Jboss Apache WebLogic区别与比较(阿里面试)
1. Tomcat是Apache鼎力支持的Java Web应用服务器,只能做JSP和Servlet的Container,不支持EJB,由于它优秀的稳定性以及丰富的文档资料,广泛的使用人群,从而在开源领 ...
- 将项目从tomcat 迁移到JBoss5.0
http://java-boy.iteye.com/blog/531411从Tomcat升级到JBoss5.1真是一个痛苦的过程,可能遇到很多问题.以下是我碰到的问题,及解决方法. 一.Hiberna ...
- 如何用tomcat实现类似weblogic那样的热部署方式
平时weblogic部署程序包时一般是到控制台去部署,不需要重启. 相反之前用tomcat部署应用时,我一般都是把tomcat重启来完成程序包的更新或新包部署.但是这次要部署的应用有点多,大概10几个 ...
- 开发使用tomcat生产使用weblogic造成jar包冲突如何解决?
问题描述开发时新增了jar包,当将增量包部署到测试服务器后启动应用出现如下错误提示:java.lang.LinkageError: loader constraint violation: loade ...
- 主流服务器apache,iis,tomcat,jboss,resion,weblogic,websphere的区别
在互联网高速发展的今天,不同种类的网站大量涌现,每个人都在享受着网络服务带来的便利.而创建自己的个性化网站的门槛不断降低.从事网站架构,这种当年的绝对“”高科技“”绝活.也从it人员的专利“”沦落“” ...
- (转)Tomcat迁移JBoss杂症—不识别及不能解析web.xml
本文介绍了在将tomcat下的web工程迁移到jboss下面时遇到的问题 背景: Tomcat 7.0 JBoss AS 4.2.2 IED: Eclipse Java EE IDE for Web ...
- SpringMVC工程环境由tomcat切换到weblogic,访问不到静态资源
在org.springframework.web.servlet.DispatcherServlet之前加入 <servlet-mapping> <servlet-name>F ...
随机推荐
- uWSGI, Thread, time.sleep 使用问题
下面的问题,在flask程序独立运行中,都没有问题,但是部署在 uwsgi 上表现异常: 1. 在http请求处理过程中,产出异步线程,放在线程池中,线程的启动时间有比较明显的延迟. 2. 在异步线程 ...
- netcore webCache缓存
NetCoreCacheService.dll public IActionResult Index() { //存入字符串 MemoryCacheService.SetChacheValue(&qu ...
- Mysql使用存储过程创建测试数据
一.概述 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集.其存储在数据库中,经过第一次编译后调用不需要再次编译,用户通过指定存储过程的名字并给出 ...
- WOFF格式
WOFF格式WOFF文件格式是用WOFF (Web Open Font Format)创建的网页开放字体格式,Web开放字体格式(Web Open Font Format,简称WOFF)是一种网页所采 ...
- 项目实战报异常Exception及决绝方案
1.报LifecycleException,再配置一下jdk即可,然后再手动添加maven 解决方法: 然后,手动添加jar包 2.maven 项目,右键maven build启动项目的时候,报下面 ...
- JAVA虚拟机:内存回收策略及算法
java虚拟机中的程序计数器区.虚拟机栈区.本地方法栈区3个区域是随着线程的创建而创建,随着线程的结束而结束时,内存自然得到回收,所以这三个区域不需要过多考虑内存的回收问题. java虚拟机中的方法区 ...
- firewalld学习--service的使用和配置
service配置文件 firewalld默认给我们提供的ftp的service配置文件ftp.xml <?xml version="1.0" encoding=" ...
- HihoCoder第五周:标准动态规划
这周的题目是最标准最简单的动态规划了,自己一直以来对动态规划都不是很理解,这次也是好好记录一下. 题目1 :数字三角形 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 问题描述 ...
- iOS大V博客
王巍的博客:王巍目前在日本横滨任职于LINE.工作内容主要进行Unity3D开发,8小时之外经常进行iOS/Mac开发.他的陈列柜中已有多款应用,其中番茄工作法工具非常棒. http://onevca ...
- sql数据库系统表和mysql系统表
sql数据库系统表,常用的(sysobjects,sysindexes,sysindexkeys,SYSCOLUMNS,SYSTYPES 及更多解释说明): https://docs.microsof ...