代码之家  ›  专栏  ›  技术社区  ›  bahadir_g

Weblogic Jaxws部署-类不支持JDK1.5

  •  1
  • bahadir_g  · 技术社区  · 7 年前

    WebLogic服务器版本:10.3.6.0

    Spring版本:3.2.1。发布

    Java JDK 1.6

    我试图将Spring应用程序部署为WAR,它将jaxws用于Weblogic服务器。 该应用程序与Jetty配合良好。但是,在部署(我指的是启动已部署的应用程序)Weblogic时,会出现以下异常:

    Caused By: java.lang.UnsupportedOperationException: This class does not support JDK1.5
            at weblogic.xml.jaxp.RegistryTransformerFactory.setFeature(RegistryTransformerFactory.java:317)
            at com.sun.xml.ws.util.xml.XmlUtil.newTransformerFactory(XmlUtil.java:392)
            at com.sun.xml.ws.util.xml.XmlUtil.newTransformerFactory(XmlUtil.java:400)
            at com.sun.xml.ws.util.xml.XmlUtil.<clinit>(XmlUtil.java:233)
            at org.jvnet.jax_ws_commons.spring.SpringService.getObject(SpringService.java:36
    

    maven pom公司。xml

    <dependency>
        <groupId>com.sun.xml.ws</groupId>
        <artifactId>jaxws-rt</artifactId>
        <version>2.2.10</version>
        </dependency>
    <dependency>
    <groupId>org.jvnet.jax-ws-commons.spring</groupId>
        <artifactId>jaxws-spring</artifactId>
        <version>1.9</version>
    </dependency>
    

    Weblogic。xml

    <weblogic-web-app>
    <context-root>/MyApp</context-root>
      <container-descriptor>
        <prefer-web-inf-classes>true</prefer-web-inf-classes>
        <show-archived-real-path-enabled>true</show-archived-real-path-enabled>  
      </container-descriptor>
    </weblogic-web-app>
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   bahadir_g    6 年前

    它正在通过更改weblogic进行修复。xml

     <container-descriptor>
        <prefer-web-inf-classes>false</prefer-web-inf-classes>
        <show-archived-real-path-enabled>true</show-archived-real-path-enabled>
        <prefer-application-packages>
            <package-name>com.sun.xml.ws.server.*</package-name>
        </prefer-application-packages>
      </container-descriptor>
    

    在init servlet中(如果使用旧样式),您应该将获取上下文的方式更改为:

                private static WebApplicationContext context;
    
                @Override
                public void contextInitialized(ServletContextEvent sce) {
    
                    ServletContext sc = sce.getServletContext(); 
                    this.context = WebApplicationContextUtils.getWebApplicationContext(sc);  
    
                    ...
                }
    
                public static WebApplicationContext getApplicationContext(){
                    return context;
                }
    

    这就解决了问题