使用通用方法的Java Web Service

时间:2010-05-19 09:34:56

标签: java web-services generics

我想知道是否有可能在java中创建一个通用的webservice方法:

@WebMethod
public <T extends Foo> void testGeneric(T data){

但是,当我尝试使用Java客户端时,我会收到一条错误消息:

[错误]消息部分“参数”中的模式描述符{http://####/} testGeneric未定义,无法绑定到Java。

我知道可以创建一个带有List等参数的方法,这可以使用JAX-WS正确生成。

我不介意是否有解决方案意味着我只使用特定技术。

谢谢, 丹。

1 个答案:

答案 0 :(得分:0)

我对此表示怀疑。但是你可以定义一个通用的超级接口,让你的实际服务接口用参数扩展它:

public interface BaseService<T>{
    T doWhackStuff();
}

public interface WhackyService extends BaseService<Whack>{
}

public interface EvenMoreWhackyService extends BaseService<Whackier>{
}

如果您从多个组件构建接口,这种方法通常才有意义:

public interface BaseService<T>{
    T doWhackStuff();
}

public interface ExtendedService<T>{
    T doMoreWhackStuff();
}

public interface DoubleWhackyService extends BaseService<Whack>, ExtendedService<Whack>{
}

我没有在JAX-WS中测试过这种方法,但我知道它适用于Spring / GraniteDS / Flex