Java 无法在LINUX上的Weblogic 12c中部署WebService
使用JAX-WS,我们开发了一个WebService,无法在运行于LinuxJava64位的WebLogic12c上部署。然而,在Windows7上运行的WebLogic12c上使用Java32位部署了相同的WAR文件,它工作得非常完美。以下是信息。请让我们知道我方哪里/哪里可能出了问题。提前谢谢 WebLogic生产日志Java 无法在LINUX上的Weblogic 12c中部署WebService,java,web-services,jax-ws,Java,Web Services,Jax Ws,使用JAX-WS,我们开发了一个WebService,无法在运行于LinuxJava64位的WebLogic12c上部署。然而,在Windows7上运行的WebLogic12c上使用Java32位部署了相同的WAR文件,它工作得非常完美。以下是信息。请让我们知道我方哪里/哪里可能出了问题。提前谢谢 WebLogic生产日志 ####<Nov 17, 2014 3:50:36 PM MYT> <Info> <Deployer> <Host> <
####<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
####
####
最后我发现了发生的一切。这基本上是来自WebLogic12c的错误日志。该问题与
或java.lang.NoClassDefFoundError
无关
WebService类正在获取另一个类的实例,该类正在加载在类路径上找不到的属性(application.props)。系统并没有为找不到的prop file抛出null指针,而是在WebService部署时显示不同的错误消息
错误是由于APP_PROP_文件不在任何类路径中
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();
}
}
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();
}
}