将JAXB注释类用于JAXWS服务

时间:2012-04-11 13:03:18

标签: java xml web-services jaxb jax-ws

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

@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)

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

我是否需要使用Web服务类或其他什么?

1 个答案:

答案 0 :(得分:0)

我认为问题是因为s​​oapUI从我的WSDL自动生成请求。当我使用没有namespace子句的@XmlRootElement注释我的类时,它不会将给定的XML映射到may对象。我分配@XmlRootElemen(namespace =“”),我的问题就消失了。

感谢您的回复。