2012-03-13 96 views
1

我认为我只是简单的东西在这里,但这里是我从...接口,返回类型与JAX-WS + JAXB

@WebService 
public interface MyService { 
    public AnInterface doStuff(); 
} 

在这里工作是一些什么我都试过了。所有与CXF 2.5.2 +春Weblogic上10.3.4 ...

  1. 使用@XmlSeeAlso的为MyService接口和AnInterface指向JAXB到AnInterfaceImpl类。这仍然导致臭名昭着的JAXB无法处理接口异常。
  2. 二手@XmlElementReference的方法,但这个曾作为项目(1)相同的效果,似乎是对财产系列化
  3. 使用@ResponseWrapper的方法,但它是我的理解是CXF自动执行此操作(裸VS裹)但我可能是错的。虽然这允许在运行时创建WSDL,但总是返回一个默认对象。也许我误解了这个注释应该如何工作。

我猜有一些方法可以轻松地注释说AnInterface应通过
AnInterfaceImplMyService类暴露很容易地,但我错过了一些重要的和简单的一步。

+0

如果您要添加'@Produces({MediaType.APPLICATION_XML})',会发生什么?我认为CXF默认为'*/*',这样它可能会影响客户端发送接受标头的内容。 – 2012-03-20 16:52:26

+1

@unhillbilly:我认为你使JAX-WS与JAX-WS混淆。在JAX-WS中,它始终是XML。纠正我,如果我错了,我是新的。 – 2012-03-20 18:55:11

+0

你是在现场。没关系 :) – 2012-03-21 02:20:12

回答

1

这个技巧似乎是在here所述的目标接口上使用@XmlJavaTypeAdapter。我不明白为什么在其他方法似乎失败的情况下工作。