2010-05-19 55 views
0

我想知道是否有可能使一个通用的Web服务方法,在Java中是这样的:Java的web服务与通用方法

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

然而,当我试图用Java客户端,我得到一个错误,说明消费这样的:

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

我知道有可能创建一个方法,它需要一个参数(如List),并且这可以使用JAX-WS正确生成。

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

谢谢, 丹。

回答

0

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

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

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

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

我:

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

public interface WhackyService extends BaseService<Whack>{ 
} 

public interface EvenMoreWhackyService extends BaseService<Whackier>{ 
} 

这种方法通常只有从多个组件构建您的接口有意义没有在JAX-WS中测试过这种方法,但我知道它在Spring/GraniteDS/Flex中工作