在进行etl web service调用时,导入到web工程后,老是运行不对,建立java工程验证是正确的。报错如下:
Exception in thread "main" java.lang.NoClassDefFoundError: com/liferay/portal/kernel/util/SystemEnv
at com.liferay.util.SystemProperties.<init>(SystemProperties.java:134)
at com.liferay.util.SystemProperties.<clinit>(SystemProperties.java:166)
at com.liferay.util.axis.SimpleHTTPSender.<clinit>(SimpleHTTPSender.java:175)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at org.apache.axis.utils.ClassUtils$2.run(ClassUtils.java:177)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.axis.utils.ClassUtils.loadClass(ClassUtils.java:160)
at org.apache.axis.utils.ClassUtils.forName(ClassUtils.java:100)
at org.apache.axis.deployment.wsdd.WSDDTargetedChain.makeNewInstance(WSDDTargetedChain.java:157)
at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getNewInstance(WSDDDeployableItem.java:274)
at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getInstance(WSDDDeployableItem.java:260)
at org.apache.axis.deployment.wsdd.WSDDDeployment.getTransport(WSDDDeployment.java:410)
at org.apache.axis.configuration.FileProvider.getTransport(FileProvider.java:257)
at org.apache.axis.AxisEngine.getTransport(AxisEngine.java:332)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:163)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.informatica.www.wsh.MetadataServiceSoapBindingStub.login(MetadataServiceSoapBindingStub.java:495)
at com.meritit.datacenter.util.ETLWSDemo.main(ETLWSDemo.java:76)
解决方法:通过java工程测试没有问题,则问题就出现在web工程中的jar包冲突上,通过一个个错误进行jar包定位,最终发现util-java.jar是问题所在。将其删除后,工程正常运行。