2009-12-21 43 views
1

我正在開發一個Web應用程序,它是一個基本上充當Web服務前端的servlet,即時使用Web服務客戶端的CXF,應用程序運行在WebLogic 9.10服務器上,每一件事情都工作正常,直到項目所有者決定添加ssl supprt,沒有什麼大問題,因爲即時通訊使用cxf whitout spring,我設法在服務客戶端的http管道中配置TLS參數,還配置了一個keystore whit服務器密鑰,ca根證書和客戶端證書,在開發的tomcat實例下測試並且工作正常。重新部署應用程序再次WebLogic Server並開始收到奇怪的錯誤時CXF + SSL + WebLogic 9.10

問題開始,第一個是:

java.lang.ClassCastException: com.sun.xml.ws.client.sei.SEIStub cannot be cast to org.apache.cxf.frontend.ClientProxy 
at org.apache.cxf.frontend.ClientProxy.getClient 

然後我意識到比的WebLogic中加載其自己的實現JAX-WS的,否萬阿英,蔣達清,只是增加了一個weblogic.xml絲毫「喜歡-WEB-INF類」設置爲true,重新部署,現在我得到這個異常:

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/adinfi/imgsvc/cm/service/CMBGenericWebServiceService, 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 

這一個有我,我還以爲出事了絲毫的類路徑,所以我開始從應用程序中刪除jar和stil我了一些鏈接錯誤,最後一個我得到的是這樣的:

java.lang.LinkageError: loader constraint violation: loader (instance of <bootloader>) previously initiated loading for a different type with name "org/w3c/dom/UserDataHandler" 

這是怎麼了「WEB-INF/lib目錄/」我的應用程序的目錄看起來像現在:

classes12.jar 

    classes12.zip 

    common.jar 

    common.resources.jar 

    commons-beanutils-1.8.0.jar 

    commons-discovery.jar 

    commons-logging-1.1.1.jar 

    commons-logging-api.jar 

    commons-logging-api-1.1.1.jar 

    cxf-2.2.5.jar 

    log4j-1.2.8.jar 

    ras.jar 

    runtimefw.jar 

    wsdl4j-1.6.2.jar 

    wss4j-1.5.8.jar 

    xalan-2.7.1.jar 

    xml-resolver-1.2.jar 

    XmlSchema-1.4.5.jar 

    xmlsec-1.4.3.jar 

任何想知道我做錯了什麼?在此先感謝

回答

5

回滾prefer-web-inf-classes的東西,並遵循CXF文檔的Application Server Specific Configuration Guide的WebLogic特定說明。 更確切地說,提供了第二個選項Pack war in an ear, deploy the ear with weblogic-application.xml用下面的內容講解了weblogic-application.xml

<?xml version="1.0" encoding="UTF-8"?> 
<weblogic-application xmlns="http://www.bea.com/ns/weblogic/90"> 
    <application-param> 
     <param-name>webapp.encoding.default</param-name> 
     <param-value>UTF-8</param-value> 
    </application-param> 
    <prefer-application-packages> 
     <package-name>javax.jws.*</package-name> 
    </prefer-application-packages> 
</weblogic-application> 

遵循的this post額外的步驟,如果需要的。

+0

哇不知何故設法錯過了那一塊文件....現在我馬上工作,會立即嘗試,謝謝你的答覆=) – Harima555 2009-12-21 12:45:55

0

我不記得我是如何解決它的。 我認爲這個問題在我的pom.xml文件中刪除導入stax-api後消失了。 更確切地說,在我的情況下,我不得不從poi-ooxml中排除它。

<dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi-ooxml</artifactId> 
     <version>3.9</version> 
     <exclusions> 
      <exclusion> 
       <groupId>stax</groupId> 
       <artifactId>stax-api</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency>