java -jar(runnable)vs java -cp(no runnable)

时间:2016-08-25 09:11:22

标签: java jar cxf executable-jar wsdl2java

我创建了一个Web客户端,它调用通过CXF(wsdl2java)公开的OSB中的服务。我创建了一个maven项目并导入了源代码。另外,我在项目中添加了CXF库。我使用IDE是Eclipse,运行包含main方法的类会完美地调用服务并响应。

然后我将项目导出为runnable jar,当我运行命令时:java -jar myJar.jar发生以下异常:

ago 25, 2016 9:39:35 AM org.apache.cxf.common.injection.ResourceInjector invokeS
etter
GRAVE: exception raied when invoking setter public final void org.apache.cxf.wsd
l11.WSDLManagerImpl.setBus(org.apache.cxf.Bus)
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.cxf.common.injection.ResourceInjector.invokeSetter(Resourc
eInjector.java:287)
        at org.apache.cxf.common.injection.ResourceInjector.visitMethod(Resource
Injector.java:232)
        at org.apache.cxf.common.annotation.AnnotationProcessor.processMethods(A
nnotationProcessor.java:89)
        at org.apache.cxf.common.annotation.AnnotationProcessor.accept(Annotatio
nProcessor.java:72)
        at org.apache.cxf.common.injection.ResourceInjector.inject(ResourceInjec
tor.java:118)
        at org.apache.cxf.common.injection.ResourceInjector.inject(ResourceInjec
tor.java:112)
        at org.apache.cxf.bus.extension.ExtensionManagerImpl.loadAndRegister(Ext
ensionManagerImpl.java:215)
        at org.apache.cxf.bus.extension.ExtensionManagerImpl.getBeansOfType(Exte
nsionManagerImpl.java:290)
        at org.apache.cxf.bus.CXFBusImpl.getExtension(CXFBusImpl.java:99)
        at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:170
)
        at org.apache.cxf.jaxws.ServiceImpl.initialize(ServiceImpl.java:161)
        at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:129)
        at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderI
mpl.java:82)

我已经查看了MANIFEST,我看到变量&#39; Class-Path:&#39;包含所有必要的库和其他变量&#39; Main-Class:&#39;表示包含main方法的主类。

但是,如果我运行命令(在项目的根目录下)mvn clean install(创建一个jar)并运行以下命令:java -cp myJar.jar myPackage.MainClass,执行成功。

我知道有一些关于&#39; java -jar java -cp myJar.jar VS myJar.jar myPackage.MainClass&#39;但老实说,不明白为什么第一个选项导致我提到的例外,谁能告诉我什么是什么?

非常感谢。

0 个答案:

没有答案
相关问题