簡體   English   中英

在Eclipse中使用Apache CXF生成Web服務時出現NullPointerException

[英]NullPointerException when generating webservice with Apache CXF in Eclipse

我正在按照本教程在Java Web項目中創建Web服務: https : //angelozerr.wordpress.com/2011/08/24/jaxwscxf_step2/ 當我開始使用Apache CXF實際生成它時,它會生成所有文件和包(由於某種原因會生成兩個jaxws包),但是我在控制台中看到此錯誤:

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,同時使用Apache CXF生成Web服務 ,但是我的執行環境已經是1.8。

在此處輸入圖片說明

我究竟做錯了什么? 任何幫助,將不勝感激!

編輯: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;
    }
}

這些是它創建的文件:(然后顯示錯誤)

在此處輸入圖片說明

查看異常跟蹤,

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編譯器而不是Java Runtime,請嘗試使用JDK而不是JRE運行它。

如果從命令行運行java2ws,請確保JAVA_HOME環境變量指向最近安裝的JDK文件夾,如果您使用的是CXF eclipse插件,則可能還需要降級到Apache CXF 2.7.18,因為CXF eclipse插件不支持3.x版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM