tomcat迁移到weblogic的几个问题

标签: tomcat weblogic 问题 | 发表时间:2015-08-30 10:54 | 作者:lkl
出处:http://www.iteye.com

第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文件的时候是这样的:

 

 

 

  1. <web-app version="3.0"   
  2.     xmlns="http://java.sun.com/xml/ns/javaee"   
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  5.     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>

至此迁移成功。



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [tomcat weblogic 问题] 推荐:

tomcat迁移到weblogic的几个问题

- - 研发管理 - ITeye博客
异常描述: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:.

如何对应用服务性能问题诊断(Tomcat、Weblogic中间件) - luihengk

- - 博客园_首页
在我们web项目中,我们常见的web应用服务器有Tomcat、Weblogic、WebSphere. 它们是互联网应用系统的基础架构软件,也叫“中间件”,负责处理动态在页面请求,并为应用提供了名字、事务、安全、消息、数据访问等,此外,它们还是提供应该构建的开发、部署、运行及管理功能. 当我们对项目做性能测试时,我们如何更好地监控它们,并诊断出性能问题呢.

Weblogic部署CAS3.5问题解决方案

- - ITeye博客
webLogic版本:10.3.6.0. cas服务端版本:3.5.2.1. 部署一套SSO环境,选用CAS最新版做为服务端,在开发阶段选用Tomcat6做为应用容器未出现任何问题,业务功能整合完毕后准备将CAS服务端移植到weblogic环境下,然后问题出现了. 在整个部署过程中,主要遇到两个问题.

WebLogic 优化

- - 开源软件 - ITeye博客
WebLogic 配置文件(config.xml)包含了大量很直观的与性能有关的参数,能通过配置环境与应用程序得到很好的优化. 基于系统的需要调整这些参数不仅能改善单个点的性能,而且能提高整个应用程序性能的可衡量性. 试着采用下列WebLogic配置方法,或许能使你的系统达到最佳状态:. 一 修改运行队列线程数的值.

weblogic server启动慢

- - Linux - 操作系统 - ITeye博客
(1)较好的解决办法: 在Weblogic启动参数里添加 “-.   Djava.security.egd=file:/dev/./urandom” (/dev/urandom 无法启动). 修改Linux上Weblogic使用的jdk $JAVA_HOME/jre/lib/security/java.security 文件.

关于将XMPP server部署到Tomcat上的一些问题

- - 博客园_首页
在XMPP消息推送这个问题上,网上已经有很多资料了,本人觉得很好的一篇资料是: http://www.iteye.com/topic/1117043. 提供了一个连接下载源码: http://115.com/file/bhkfse3i#%20Androidpn.rar. 在源码的使用过程中要注意的地方有两点,网上的那篇资料好像忽略了一个重要的地方,就是要改resources文件夹下面的jdbc.properties,将里面关于数据库的配置改为自己的,另一个需要注意的地方就是改android端的ip了.

tomcat报错:This is very likely to create a memory leak问题解决

- - Web前端 - ITeye博客
tomcat memory leak解决方案. 这种问题在开发中经常会碰到的,看看前辈的总结经验. Tomcat内存溢出的原因.   在生产环境中tomcat内存设置不好很容易出现内存溢出. 造成内存溢出是不一样的,当然处理方式也不一样.   这里根据平时遇到的情况和相关资料进行一个总结. 常见的一般会有下面三种情况:.

关于JVM(JDK),Tomcat,Linux的最大线程数问题

- - 孟飞阳的博客
一、JVM(JDK)最大线程数. JVM最大创建线程数量由JVM堆内存大小、线程的Stack内存大小、系统最大可创建线程数(Java线程的实现是基于底层系统的线程机制来实现的,Windows下_beginthreadex,Linux下pthread_create)三个方面影响. -Xmx  最大堆内存.

tomcat调优

- - 开源软件 - ITeye博客
1          概述. 本文档主要介绍了Tomcat的性能调优的原理和方法. 可作为公司技术人员为客户Tomcat系统调优的技术指南,也可以提供给客户的技术人员作为他们性能调优的指导手册. 2          调优分类. 由于Tomcat的运行依赖于JVM,从虚拟机的角度我们把Tomcat的调整分为外部环境调优和自身调优两类来描述.

Tomcat 优化

- - 编程语言 - ITeye博客
tomcat默认参数是为开发环境制定,而非适合生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈. linux修改TOMCAT_HOME/bin/catalina.sh,在前面加入. windows修改TOMCAT_HOME/bin/catalina.bat,在前面加入. 最大堆内存是1024m,对于现在的硬件还是偏低,实施时,还是按照机器具体硬件配置优化.