无法在LINUX上的Weblogic 12c中部署Web服务

时间:2014-11-17 11:17:01

标签: java web-services jax-ws

使用JAX-WS,我们开发了一个WebService,无法在运行在LINUX JAVA 64Bit上的WebLogic 12c上进行部署。但是,使用JAVA 32Bit在Windows 7上运行的WebLogic 12c上部署了相同的WAR文件,并且它工作正常。这是信息。请告诉我们我们哪里/哪些可能出错。提前致谢

WebLogic生产日志

####<Nov 17, 2014 3:50:36 PM MYT> <Info> <Deployer> <Host> <Managed1>   
<Module GetShipmentChargeDetails.war of application GetShipmentChargeDetails 
      successfully transitioned from STATE_PREPARED to STATE_ADMIN on server Managed1.>
####<Nov 17, 2014 3:50:36 PM MYT> <Info> <ServletContext-/GetShipmentChargeDetails>   
<No Spring WebApplicationInitializer types detected on classpath>
<Servlet: "ShipmentChargeWSServlet" failed to preload on 
      startup in Web application: "GetShipmentChargeDetails.war".
javax.xml.ws.WebServiceException: java.lang.NoClassDefFoundError: 
Could not initialize class com.company.scws.service.GetShipmentChargeDetails

错误消息
Web Service不使用任何与Spring相关的

<No Spring WebApplicationInitializer types detected on classpath>

提前致谢并感谢任何帮助/提示。

1 个答案:

答案 0 :(得分:0)

最后我发现了发生的事情。它基本上是误导了WebLogic 12c的错误日志。该问题与<No Spring WebApplicationInitializer types detected on classpath>java.lang.NoClassDefFoundError无关。

WebService类正在获取另一个类的实例,而这个类又加载了在类路径中找不到的属性(application.props)。而不是为找不到的prop文件抛出NullPointer,系统在WebService部署时显示不同的错误消息。

错误是由于APP_PROP_FILE不在任何类路径中

applicationProps.load(AppUtils.class.getClassLoader().getResourceAsStream(
                    APP_PROP_FILE));

示例代码段

    static Properties applicationProps;
    public static synchronized AppUtils getInstance() {
        if (appUtils == null) 
            appUtils = new AppUtils();
        return AppUtils;
    }
    public AppUtils() {
        PropertyConfigurator.configure(System.getProperty("log4j.configuration"));
        loadProperties();
    }
    public static Properties getApplicationProps() {
        if (applicationProps == null)
            loadProperties();
        return applicationProps;
    }
    private static void loadProperties() {
        applicationProps = new Properties();
        try {
            applicationProps.load(AppUtils.class.getClassLoader().getResourceAsStream(
                    APP_PROP_FILE));
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }