2

我创建了一个 cxf/spring 项目:

mvn archetype:create -DarchetypeGroupId=org.apache.cxf.archetype -DarchetypeArtifactId=cxf-jaxws-javafirst

生成的项目有一个用 @WebService 注释的 HelloWorld.java 接口和一个用 endpointInterface=mypackage.HelloWorld 注释的 HelloWorldImpl.java。

有一个 beans.xml 文件包含:

<jaxws:endpoint
   id="helloWorld"
   implementor="mypackage.HelloWorldImpl"
   address="/HelloWorld" />

如果我想添加更多服务,看起来我应该继续在 beans.xml 中添加新端点。由于这些类已经被注释为@WebService,为什么它不能在某些包/搜索路径中自动发现任何新服务?有什么方法可以配置这个项目来做到这一点?

基本上,我只是想避免重复自己。信息已经在注释中,所以我不想每次添加服务时都编辑其他文件。

如果我删除 beans.xml 中的 jaxws:endpoint 标记,然后mvn install tomcat:runlocalhost:8080/myArtifactId 只会显示一个页面,说明没有定义服务。

4

1 回答 1

1

当您使用 CXF 时,您应该知道您添加的所有端点都由使用 Spring 上下文查找它们的 CXFServlet 管理。beans.xml是 Spring 上下文的配置文件。因此,如果您<jaxws:endpoint/>从该文件中删除该节点,则您的 Spring 上下文和因此 CXFServlet 将无法找到您的服务端点。

于 2012-08-16T11:01:25.587 回答