3

我有一个像这样工作的网络服务:

@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 //
}

使用这种结构,我的 Web 服务可以用soapUI 调用而不会出现问题。问题是当我想用 JAXB 注释来注释我的模型类时,例如:

@XmlType(name="barkod")
@XmlRootElement(name="barkod")
@XmlAccessorType(XmlAccessType.FIELD)

我可以将它部署到 glassfish 3.1,soapUI 会生成具有新结构的新客户端请求,但是当涉及到“barkod.getBarkodNo();”时 在 addBarkod 操作时,它会抛出 NullPointerException。我看起来像我发送到 Web 服务的 XML 没有创建正确的 Barkod 对象。

我与网络服务类或其他东西有关吗?

4

1 回答 1

0

我认为问题是因为s​​oapUI 从我的WSDL 自动生成请求。当我在没有命名空间子句的情况下使用 @XmlRootElement 注释我的类时,它不会将给定的 XML 映射到可能的对象。我分配 @XmlRootElemen(namespace="") 并且我的问题消失了。

无论如何,感谢您的回复。

于 2012-04-12T11:13:33.390 回答