2016-05-26 20 views
0

このチュートリアルでは、Java WebプロジェクトでWebサービスを作成するために、https://angelozerr.wordpress.com/2011/08/24/jaxwscxf_step2/を作成しています。私は実際にはApache CXFでそれを生成されたら、それはすべてのファイルやパッケージが(何らかの理由で2つのJAXWSパッケージを作る)になりますが、私は、コンソールでこのエラーを参照してください。私はこれを読んでいたEclipseでApache CXFを使用してWebサービスを生成するときにNullPointerExceptionが発生する

java2ws -cp C:\Users\mo\Documents\Workspace\NpcWS\build\classes -s C:\Users\mo\Documents\Workspace\NpcWS\.cxftmp/src -d C:\Users\mo\Documents\Workspace\NpcWS\.cxftmp/wsdl -classdir C:\Users\mo\Documents\Workspace\NpcWS\build\classes -o helloserviceimpl.wsdl -createxsdimports -verbose -frontend jaxws -databinding jaxb -wsdl -wrapperbean org.cloudlet.ws.HelloServiceImpl 
java2ws - Apache CXF 3.1.6 

May 26, 2016 9:18:55 AM org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean buildServiceFromClass 
INFO: Creating Service {http://ws.clodulet.org/}HelloServiceImplService from class org.clodulet.ws.HelloServiceImpl 
java.lang.NullPointerException 
    at org.apache.cxf.common.util.Compiler.useJava6Compiler(Compiler.java:187) 
    at org.apache.cxf.common.util.Compiler.compileFiles(Compiler.java:141) 
    at org.apache.cxf.tools.java2wsdl.generator.wsdl11.BeanGenerator.generateAndCompile(BeanGenerator.java:91) 
    at org.apache.cxf.tools.java2wsdl.generator.wsdl11.BeanGenerator.generate(BeanGenerator.java:58) 
    at org.apache.cxf.tools.java2wsdl.generator.wsdl11.BeanGenerator.generate(BeanGenerator.java:35) 
    at org.apache.cxf.tools.java2wsdl.processor.JavaToWSDLProcessor.generate(JavaToWSDLProcessor.java:156) 
    at org.apache.cxf.tools.java2wsdl.processor.JavaToWSDLProcessor.process(JavaToWSDLProcessor.java:118) 
    at org.apache.cxf.tools.java2ws.JavaToWSContainer.processWSDL(JavaToWSContainer.java:110) 
    at org.apache.cxf.tools.java2ws.JavaToWSContainer.execute(JavaToWSContainer.java:75) 
    at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103) 
    at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:58) 
    at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:40) 
    at org.apache.cxf.tools.java2ws.JavaToWS.run(JavaToWS.java:77) 
    at org.apache.cxf.tools.java2ws.JavaToWS.main(JavaToWS.java:45) 

を:NullPointerException while generating web service with Apache CXF私の実行環境はすでに1.8です。

enter image description here

私が間違って何をしているのですか?どんな助けもありがとう!

EDIT:Javaクラス

package org.clodulet.ws; 

import javax.jws.WebService; 

@WebService(targetNamespace = "http://ws.clodulet.org/", portName = "HelloServiceImplPort", serviceName = "HelloServiceImplService") 
public class HelloServiceImpl 
{ 
    public String getVersion() { 
     return "1.0"; 
    } 

    public String hello(String str) { 
     return "Hello " + str; 
    } 
} 

これらは、作成したファイルです。(エラーが現れる)

enter image description here

+0

これをよりよく理解するために、Java2wsクラスのコードを提供してください。 – Jeet

+0

私はOPにそれを追加しました。 –

+0

私はコードが私には大丈夫なので、今すぐ完全なプログラムを分析しています。 – Jeet

答えて

2

例外トレースを見ると、

java.lang.NullPointerException 
    at org.apache.cxf.common.util.Compiler.useJava6Compiler(Compiler.java:187) 

およびCompilerクラスの一部

180  Object compiler = Class.forName("javax.tools.ToolProvider") 
181   .getMethod("getSystemJavaCompiler").invoke(null); 

Java RuntimeではなくJava Compilerが必要なようですが、JDKではなくJDKで実行してみてください。

コマンドラインからjava2wsを実行している場合は、JAVA_HOME環境変数が最近インストールされたJDKフォルダを指していることを確認します。CXF eclipseプラグインを使用している場合、Apache CXF 2.7.18にダウングレードする必要があります。 CXF eclipseプラグインは3.xバージョンをサポートしていません。

+0

Eclipseでどのように設定すればよいですか?私は実行環境に行きましたが、JREのみを選択できます。 –

+0

JDKをまずダウンロードしてインストールし、インストールされているJREにJDKフォルダを追加し、デフォルトとして選択します。 – vzamanillo

+0

JDKではなくJREで試してみることに同意します – Jeet

関連する問題