2012-03-13 104 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。我不明白爲什麼在其他方法似乎失敗的情況下工作。