Jaxb 如何在JAX-WS客户机中重用服务器端类?

Jaxb 如何在JAX-WS客户机中重用服务器端类?,jaxb,jax-ws,Jaxb,Jax Ws,我在服务器端有一个类:ForumEntry,还有一个web服务,它返回ForumEntry的列表: @WebService(name="ForumGeneral",serviceName="ForumGeneralService") public class ForumGeneralService { @WebMethod public List<ForumEntry> getLatestTopics(String keyword,int count){ ... }

我在服务器端有一个类:ForumEntry,还有一个web服务,它返回ForumEntry的列表:

@WebService(name="ForumGeneral",serviceName="ForumGeneralService")
public class ForumGeneralService {

  @WebMethod
  public List<ForumEntry> getLatestTopics(String keyword,int count){
  ...
  }
}
然后使用schemagen生成事件文件,然后使用-b参数将其传递给wsimport。但我遇到了问题,因为生成的插曲文件包含“forumEntry”的条目:

[ERROR] SCD "~forumEntry" didnt match any schema component
我猜这意味着“forumEntry没有出现在WSDL中,这是正确的:

<message name="getLatestTopics">
<part name="parameters" element="tns:getLatestTopics"></part>
</message>
<message name="getLatestTopicsResponse">
<part name="parameters" element="tns:getLatestTopicsResponse"></part>
</message>


那么,为了重用服务器端类,这里的所有部分是如何组合在一起的呢

您应该向模式中添加一个ForumEntry类,以便客户端可以生成它,并在服务器端使用生成的类。或者向您的架构中添加一个新类,该类包含与ForumEntry相似的数据,并让服务器根据您的ForumEntry对象的响应创建这些对象,然后返回这些创建的对象。

谢谢,但您能更具体一点吗?我正在返回一个列表,而FourmEntry是一种类型。双方如何使用Forumentry类?谢谢。您必须在客户端生成ForumEntry类并使用它。虽然这个问题很老,但我有类似的问题。问题是,我已经有一堆服务器端代码使用一些类作为数据类型,这些类中还有一堆实用方法。如果服务器端更改为使用从客户端生成的类,这将是一项主要工作。。。
<message name="getLatestTopics">
<part name="parameters" element="tns:getLatestTopics"></part>
</message>
<message name="getLatestTopicsResponse">
<part name="parameters" element="tns:getLatestTopicsResponse"></part>
</message>