【java】Weblogic12C部署xcf项目(jdk1.8)记录-2018年4月29日

【前言】

    因为客户是银行,认为商业软件追责和寻求技术支持更可靠,所以坚持要求使用weblogic部署。

    本来认为war包从tomcat上迁移到weblogic只是一个很简单的问题。没想到踩到个大雷。 大概花了三天的时间才把包成功的在weblogic服务器上运行起来。


【正文】

   需要考虑的问题:

   1.weblogic 版本与jdk版本对应的问题

   刚开始服务器上安装的weblogic版本为weblogic10

         报错:      

 weblogic部署异常: cvc-enumeration-valid: string value '3.1' is not a valid enumeration value for web-app-versionType in namespace http://java.sun.com/xml/ns/javaee:<null>

         原因就是  weblogic10 只支持javaee 5  及以下

         而xml约束中 version 3.1 代表着javaee7 weblogic10 根本不支持

           于是更换到weblogic12C

         2.cxf jar包冲突

            cxf与weblogic有很多jar包是冲突的,具体解决的时候,首先在web-INF下建立weblogic.xml文件:

                          

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
    <container-descriptor>
        <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>
</weblogic-web-app>

     这是设置优先加载项目中的jar包    

     但是只做完了这样还完全不够,因为weblogic对项目的校验异常严格。所以建议通过maven管理jar包首先把无用的jar包全部清除掉。 cxf自身的包之间也会有很多冲突的定义。

          

遇到的冲突包:           

    第一个: 错误信息:

Invalidschema document passed to AbstractDataBinding.addSchemaDocument, not in W3Cschema namespace: schema


解决:移除jaxb-impl的jar包

原因:与weblogic上的jar冲突


第二个:

Axis: rt.jar和jaxrpc中javax.xml.namespace.QName冲突问题分析

报错:

Caused by: java.lang.LinkageError: loader constraint violation: when resolving method "javax.xml.ws.Service.<init>(Ljava/net/URL;Ljavax/xml/namespace/QName;)V" the class loader (instance of weblogic/utils/classloaders/ChangeAwareClassLoader) of the current class, com/hthk/webservice/ips/IpsInvFunctionsSoapService, and the class loader (instance of <bootloader>) for resolved class, javax/xml/ws/Service, have different Class objects for the type javax/xml/namespace/QName used in the signature  
    at com.hthk.webservice.ips.IpsInvFunctionsSoapService.<init>(IpsInvFunctionsSoapService.java:46)  
    at com.hthk.action.IpsInvoiceFileAction.queryBill(IpsInvoiceFileAction.java:76)  

      原因参考:这篇博客 


      3.确实存在的语法错误: 

这个是校验出了实体类getset方法写的有问题。

建议 :用工具生成相应方法,或者用ide生成。


【总结】

    仔细查看日志信息,善用搜索引擎。根据日志中jar包的名称,作用来思考可能发生问题的方向。


 



评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农胖虎-java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值