如何使用JAX-WS获取我的服务中定义的常量?

时间:2010-08-21 05:58:48

标签: java web-services annotations jax-ws

我有一个web服务,我正在使用JAX-WS注释来生成WSDL&关联的客户端代码(写两端,只使用JAX-WS进行传输)。

我有一个方法,根据请求的状态可以有不同的返回值,

@WebMethod
public int uploadResults( 
        @WebParam(name="authentication") ServiceAuth auth, 
        @WebParam(name="mimeType") String mimeType, 
        @WebParam(name="data") byte [] dataBlock )
{
  // ... omitted.

并且在类中也定义了一些返回值。

public static final int STATUS_OK = 0;
public static final int STATUS_ERROR = 1;
public static final int STATUS_AUTH_FAILURE = 2;
... etc.

在使用wsgen生成WSDL和wsimport用于客户端代码之后,这些常量的任何地方都没有任何引用。理想情况下,我宁愿不在两个位置定义它们,并且它们不共享源树,因此在公共位置定义它们也有点尴尬。

所以,我的问题是: 我是否可以在每个声明上添加一个注释,以便将标识符写入WSDL中,然后在wsimport生成的客户端类中定义类似的常量?

(p.s。我也很欣赏任何有关'你做错了,以这种方式返回状态而不是......'的评论。)

1 个答案:

答案 0 :(得分:1)

您是不是最好不要试图通过线路传递异常然后提出需要在两个区域中定义的自定义方式?