2013-06-01 6 views
12

私は単純な "HelloWorld" Webサービスをjubossの下でubuntuの配下に配備しています。 シンプルなクライアントを作成しましたが、動作させることができません。私はクライアントを実行するたびにNullPointerExceptionを取得しています。JAVA JAX-WS javax.xml.ws.Service.getPort(Service.java:188)のNullPointerException

私はOracle Java 7のUbuntuで動作しています。ここ

コードは次のとおり HelloWorldClient.java

import java.net.MalformedURLException; 
import java.net.URL; 

import javax.xml.namespace.QName; 
import javax.xml.ws.Service; 


public class HelloWorldClient { 

public static void main(String[] args){ 
    URL url; 
    try { 
     url = new URL("http://localhost:8080/WebServiceProject/helloWorld?wsdl"); 
     QName qname = new QName("http:///", "HelloWorldImplService"); 

     Service service = Service.create(url, qname); 

     HelloWorld hello = service.getPort(HelloWorld.class); 

     System.out.println(hello.sayHello("mkyong")); 
    } catch (MalformedURLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

} 

}

HelloWorld.java

import javax.jws.WebMethod; 
import javax.jws.WebService; 


@WebService 
public interface HelloWorld { 

    @WebMethod 
    public String sayHello(String name); 

} 

スタックトレース:

Exception in thread "main" java.lang.NullPointerException 
at com.sun.xml.internal.ws.model.RuntimeModeler.getPortTypeName(RuntimeModeler.java:1407) 
at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:334) 
at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:354) 
at javax.xml.ws.Service.getPort(Service.java:188) 
at HelloWorldClient.main(HelloWorldClient.java:18) 

excepti上は、このラインでスローされます。

HelloWorld hello = service.getPort(HelloWorld.class); 
+1

あなたの問題には全く関係ないかもしれませんが、 'QName'には余分な'/'があります。それはタイプミスですか? –

+1

@SamRadが適切かもしれません。 'service'がnullになる理由を説明します – kolossus

+0

余分な"/"はありません。あなたは "http:// something /"のようなURLを書きます。この場合、「何か」はありません。また、サービスはnullではありません。 stacktraceを見てください – Bladositto

答えて

3

私は同じ問題を持っていた自分を数日間、今、私が使っていたWSDLファイル(およびサービス)は新しいURLに移動したため。 (持っている必要があります)私は(Windowsの/ Cygwinでは)以下のコマンドを使用して、すべての自動生成されたJavaクラスファイルを再生成した後、作業を​​開始し要するに

http://techtracer.com/2007/08/15/jax-ws-jaxp-tutorial-building-a-stockquote-web-service-client/

、すべてのもの:私は最終的にここに解決策を見つけました

"C:/Program Files/Java/jdk1.8.0_31/bin/wsimport.exe" -keep https://domain.com/path_to_wsdl 

私はいくつかの古いファイルが周りに残っていたので、いくつかの余分なトラブルがあったし、新しく生成されたものと衝突、私はごみ箱にすべての古いファイルを移動した後、すべてがゆっくりと仕事を始めました。

0

Webサービスの実装がプロジェクトのインタフェースと異なる場合にも発生する可能性があります。

Webサービス側に存在しないメソッドを宣言しているHelloWorld.classがプロジェクト内にある場合、getPort(HelloWorld.class)呼び出しではNULLポインタ例外が発生します。

アプリケーションでHelloWorld.classインターフェイスを確認し、Webサービス自体でHelloWorld.classインターフェイスを確認して、一致することを確認できます。

関連する問題