2012-02-07 2 views
4

TimeServerBeanという単純なWebサービスを作成しました。正常に動作していて、GlassFishサーバーが動作していて、ブラウザからWSDLファイルにアクセスできます。これはローカルホスト上で行われることに注意してください。WebサービスクライアントがgetMyWSPortからNullPointerExceptionを取得する

次は新しいプロジェクトを作成し、Webサービスクライアントを作成し、そのURLをWSDLファイルに提供しました。それから、いくつかのクラスが生成されました(JAX-WS)。私はgetTimeServerBeanPortを呼び出すときに、私はnullを取得しても

public class SimpleClient { 

    @WebServiceRef(wsdlLocation = "wsdl url here") 
    static TimeServerBean_Service service; 
    private TimeServerBean bean; 

    public SimpleClient() { 
     bean = service.getTimeServerBeanPort(); 
    } 
    //methods here 
} 

:私のクライアントクラスで 私はこのコードを持っています。その間、サーバーは稼働しています。明らかな間違いがありますか? TimeServerBeanおよびTimeServerBean_Serviceは、WSDLから生成されるクラスです。

+0

メソッドが 'null'を返すか、' NullPointerException'を取得していますか? – millimoose

+0

NullPointerException – Giannis

+0

try/catchブロックが表示されません。もしあなたがまだ持っていないのであれば、それを追加して、例外を見てください(私はあなたがおそらく*例外を得るだろうと推測しています)。 – paulsm4

答えて

4

つの提案:

  1. は間違いservice自体がnullであると仮定するとtry/catchブロック

  2. にあなたの方法を置くには、明示的なservice.create()を行う代わりに@WebServiceRef注釈を使用してみてください。ここでは良い例(Websphereのが、同じ原理が)です:

http://www-01.ibm.com/support/docview.wss?uid=swg21264135

+0

私は簡単にすべての仕事をしたnetbeansの挿入コード機能を使用しなければなりませんでした。 – Giannis

+0

@latusaki - 私はEclipseを使います:a)EclipseはJ2EEとAndroidの両方でうまく動作します。b)EclipseはIBMよりもフレンドリーです(そして私はIBM製品を使用しています)。 c)Eclipseはより大きな「エコシステム」(第三者のアドオン)を持つ傾向があります。私見では... – paulsm4

0

@WebServiceRef注釈は、のみ、特定のクラス・タイプでサポートされています。例としては、JAX-WSエンドポイント実装クラス、JAX-WSハンドラクラス、エンタープライズJavaBeansクラス、サーブレットクラスなどがあります。このアノテーションは、@Resourceアノテーションと同じクラスタイプでサポートされています。サポートされるクラスタイプの完全なリストについては、Java Platform、Enterprise Edition(Java EE)5の仕様を参照してください。

関連する問題