私はこのように動作するWebサービスを持っています:
@WebService(serviceName = "TempService")
public class TempService {
@WebMethod(operationName = "addBarkod")
public Boolean addBarkod(@WebParam(name = "barkod") Barkod barkod) {
System.out.println(barkod.getBarkodNo());
}
}
およびBarkodクラスは次のとおりです。
public class Barkod {
private String barkodNo;
// there are constructors and getters, setters etc. nothing fancy //
}
この構造を使用すると、問題なく、soapUIを使用してWebサービスを呼び出すことができます。問題は、モデルクラスに次のようなJAXBアノテーションを付けたい場合です。
@XmlType(name="barkod")
@XmlRootElement(name="barkod")
@XmlAccessorType(XmlAccessType.FIELD)
これをglassfish3.1にデプロイすると、soapUIは新しい構造の新しいクライアントリクエストを生成しますが、「barkod.getBarkodNo();」を実行する場合は addBarkod操作では、NullPointerExceptionがスローされます。Webサービスに送信したXMLが適切なバーコードオブジェクトを作成していないようです。
Webサービスクラスなどと関係がありますか?