Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven JNLP:tools.jar不在类路径中_Maven_Jnlp_Tools.jar - Fatal编程技术网

Maven JNLP:tools.jar不在类路径中

Maven JNLP:tools.jar不在类路径中,maven,jnlp,tools.jar,Maven,Jnlp,Tools.jar,又是我。今天,我面临着一个奇怪的问题。要么我没有正确理解,要么我只是错过了树前的森林 以下场景: 我使用的是JavaFX,捆绑在JDK1.7中 我需要客户端运行时:桌面(jar)和小程序(浏览器中的jnlp) 我已经为这个项目设置了一个maven项目 我有一个父pom和不同的子模块 我需要我的客户机与一个web服务进行通信,对于我选择的框架(我需要能够在运行时切换web服务),以连接到web服务 “连接到web服务”是一个自己的maven子模块,名为wsConnector 以下是更多的环境信

又是我。今天,我面临着一个奇怪的问题。要么我没有正确理解,要么我只是错过了树前的森林

以下场景:

  • 我使用的是JavaFX,捆绑在JDK1.7中
  • 我需要客户端运行时:桌面(jar)和小程序(浏览器中的jnlp)
  • 我已经为这个项目设置了一个maven项目
  • 我有一个父pom和不同的子模块
  • 我需要我的客户机与一个web服务进行通信,对于我选择的框架(我需要能够在运行时切换web服务),以连接到web服务
  • “连接到web服务”是一个自己的maven子模块,名为wsConnector
以下是更多的环境信息和我的pom片段:

mvn -version
Apache Maven 3.0.4 (r1232337; 2012-01-17 09:44:56+0100)
Maven home: C:\Program Files (x86)\Apache\maven-3.0.4\bin\..
Java version: 1.7.0_07, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.7.0_07\jre
Default locale: de_DE, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
为了能够编译wsConnector子模块(同样需要处理所有web服务连接的内容),我需要集成来自JDK的tools.jar,因为CXF需要它

父pom.xml中的相关属性:

<properties>
    <maven.compiler.source>1.7</maven.compiler.source>
    ...
</properties>
        
现在我的问题是:如果我用
java-jar-client.jar
运行客户机,一切都会正常工作。但是如果调用HTML/JNLP文件,我会得到一个
ClassNotFoundException
,指出tools.jar不在类路径上。 因此,不管我是从服务器还是本地主机打开小程序

以下是stacktrace:

java.lang.IllegalStateException: Unable to create schema compiler
 at org.apache.cxf.common.jaxb.JAXBUtils.createSchemaCompilerWithDefaultAllocator(JAXBUtils.java:694)
 at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:303)
 at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:270)
 at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:263)
 at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:198)
 at com.multiguide.ws.WebServiceConnector.setWsdlUrl(WebServiceConnector.java:45)
 at com.multiguide.ws.WebServiceConnector.setWsdlUrl(WebServiceConnector.java:31)
 at com.multiguide.view.administration.WebServiceInformationPanel.connect(WebServiceInformationPanel.java:130)
 at com.multiguide.view.administration.WebServiceInformationPanel.refresh(WebServiceInformationPanel.java:70)
 at com.multiguide.view.administration.WebServiceInformationPanel.<init>(WebServiceInformationPanel.java:45)
 at com.multiguide.view.administration.WebServiceInformationPanel$$FastClassByGuice$$da5f387e.newInstance(<generated>)
 at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40)
 at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:60)
 at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
 at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
 at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
 at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
 at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
 at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
 at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
 at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
 at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
 at com.google.inject.Scopes$1$1.get(Scopes.java:65)
 at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
 at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
 at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
 at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
 at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
 at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:54)
 at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
 at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
 at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
 at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
 at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
 at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
 at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
 at com.google.inject.Scopes$1$1.get(Scopes.java:65)
 at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
 at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978)
 at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
 at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974)

... 9 more
Caused by: javax.xml.bind.JAXBException - with linked exception:

java.lang.ClassNotFoundException: com/sun/tools/internal/xjc/api/XJC
 at org.apache.cxf.common.jaxb.JAXBUtils.createSchemaCompiler(JAXBUtils.java:679)
 at org.apache.cxf.common.jaxb.JAXBUtils.createSchemaCompilerWithDefaultAllocator(JAXBUtils.java:686)

... 49 more
Caused by:

java.lang.ClassNotFoundException: com/sun/tools/internal/xjc/api/XJC
 at java.lang.Class.forName0(Native Method)
 at java.lang.Class.forName(Unknown Source)
 at org.apache.cxf.common.jaxb.JAXBUtils.createSchemaCompiler(JAXBUtils.java:672)

... 50 more
java.lang.IllegalStateException:无法创建架构编译器
位于org.apache.cxf.common.jaxb.JAXBUtils.createSchemaCompilerWithDefaultAllocator(JAXBUtils.java:694)
位于org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:303)
位于org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:270)
位于org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:263)
位于org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:198)
位于com.multiguide.ws.WebServiceConnector.setWsdlUrl(WebServiceConnector.java:45)
位于com.multiguide.ws.WebServiceConnector.setWsdlUrl(WebServiceConnector.java:31)
位于com.multiguide.view.administration.WebServiceInformationPanel.connect(WebServiceInformationPanel.java:130)
位于com.multiguide.view.administration.WebServiceInformationPanel.refresh(WebServiceInformationPanel.java:70)
位于com.multiguide.view.administration.WebServiceInformationPanel.(WebServiceInformationPanel.java:45)
在com.multiguide.view.administration.WebServiceInformationPanel$$FastClassByGuice$$da5f387e.newInstance()上
位于com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40)
位于com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:60)
位于com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
在com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)上
位于com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
位于com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
位于com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
在com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)上
在com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
位于com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
位于com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
位于com.google.inject.Scopes$1$1.get(Scopes.java:65)
位于com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
位于com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
位于com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
位于com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
在com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)上
位于com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:54)
位于com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
位于com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
位于com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
在com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)上
在com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
位于com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
位于com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
位于com.google.inject.Scopes$1$1.get(Scopes.java:65)
位于com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
在com.google.inject.internal.InjectorImpl$4$1.call上(InjectorImpl.java:978)
位于com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
位于com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974)
... 9更多
原因:javax.xml.bind.JAXBException-链接异常:
java.lang.ClassNotFoundException:com/sun/tools/internal/xjc/api/xjc
位于org.apache.cxf.common.jaxb.JAXBUtils.createSchemaCompiler(JAXBUtils.java:679)
位于org.apache.cxf.common.jaxb.JAXBUtils.createSchemaCompilerWithDefaultAllocator(JAXBUtils.java:686)
... 49多
原因:
java.lang.ClassNotFoundException:com/sun/tools/internal/xjc/api/xjc
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(未知源)
位于org.apache.cxf.common.jaxb.JAXBUtils.createSchemaCompiler(JAXBUtils.java:672)
... 50多
<jar href="tools.jar" size="15226565" download="eager" />
java.lang.IllegalStateException: Unable to create schema compiler
 at org.apache.cxf.common.jaxb.JAXBUtils.createSchemaCompilerWithDefaultAllocator(JAXBUtils.java:694)
 at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:303)
 at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:270)
 at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:263)
 at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:198)
 at com.multiguide.ws.WebServiceConnector.setWsdlUrl(WebServiceConnector.java:45)
 at com.multiguide.ws.WebServiceConnector.setWsdlUrl(WebServiceConnector.java:31)
 at com.multiguide.view.administration.WebServiceInformationPanel.connect(WebServiceInformationPanel.java:130)
 at com.multiguide.view.administration.WebServiceInformationPanel.refresh(WebServiceInformationPanel.java:70)
 at com.multiguide.view.administration.WebServiceInformationPanel.<init>(WebServiceInformationPanel.java:45)
 at com.multiguide.view.administration.WebServiceInformationPanel$$FastClassByGuice$$da5f387e.newInstance(<generated>)
 at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40)
 at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:60)
 at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
 at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
 at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
 at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
 at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
 at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
 at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
 at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
 at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
 at com.google.inject.Scopes$1$1.get(Scopes.java:65)
 at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
 at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
 at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
 at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
 at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
 at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:54)
 at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
 at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
 at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
 at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
 at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
 at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
 at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
 at com.google.inject.Scopes$1$1.get(Scopes.java:65)
 at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
 at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978)
 at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
 at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974)

... 9 more
Caused by: javax.xml.bind.JAXBException - with linked exception:

java.lang.ClassNotFoundException: com/sun/tools/internal/xjc/api/XJC
 at org.apache.cxf.common.jaxb.JAXBUtils.createSchemaCompiler(JAXBUtils.java:679)
 at org.apache.cxf.common.jaxb.JAXBUtils.createSchemaCompilerWithDefaultAllocator(JAXBUtils.java:686)

... 49 more
Caused by:

java.lang.ClassNotFoundException: com/sun/tools/internal/xjc/api/XJC
 at java.lang.Class.forName0(Native Method)
 at java.lang.Class.forName(Unknown Source)
 at org.apache.cxf.common.jaxb.JAXBUtils.createSchemaCompiler(JAXBUtils.java:672)

... 50 more
<security>
  </all-permissions>
</security>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifestEntries>
                        ...
                        <Class-Path>jfxrt.jar tools.jar</Class-Path>
                    </manifestEntries>
                    <manifest>
                        <addClasspath>true</addClasspath>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
org.apache.cxf.common.jaxb.JAXBUtils logGeneratedClassNames
INFO: Created classes: <list of my generated JAVA files from the wsdl file here>
[ERROR] IOException during exec() of compiler "javac". Check your path environment variable.
Okt 23, 2012 3:46:20 PM org.apache.cxf.endpoint.dynamic.DynamicClientFactory createClient
SEVERE: Could not compile java files for <url to wsdl file here>.