java – 使用注释在JBoss AS 7中创建Web服务

我有一个带有嵌套EJB项目的EAR文件,一个.war动态Web项目和一个包含实体bean定义的.jar文件.

我正在尝试使用此远程接口创建一个简单的基于SOAP的Web服务:

package session;

import javax.ejb.Remote;
import javax.jws.WebMethod;
import javax.jws.WebService;

@Remote
@WebService
public interface HelloWorldRemote {
    @WebMethod
  public String greet(String from);
    @WebMethod
  public String getMessage();
}

和这个实现类:

package session;

import javax.ejb.Stateless;
import javax.jws.WebService;

@Stateless
@WebService(endpointInterface = "session.HelloWorldRemote", serviceName = "HelloWorldWS")
public class HelloWorldImpl implements HelloWorldRemote {

  public String greet(String from) {
    return "Hello, " + from + ".";
  }

  public String getMessage() {
    return "It's working.";
  }
}

但是,当我部署EAR文件时,日志没有提及类,WSDL,Web服务或任何会让我相信它正在尝试根据我的注释创建Web服务的任何内容.

我错过了什么?

最佳答案
这花了太长时间才发现,我偶然遇到了它.我找到了一个论坛,解释说我需要使用“–server-config = standalone-preview.xml”标志来支持某些JBoss功能.在试图找出可以找到/获取standalone-preview.xml之后,我了解到我一直在使用错误版本的JBoss.

与直觉相反,JBoss 7的“Web”配置文件不支持Web服务. (至少不是JAX-WS的那些.)

解决方案是下载“Everything”配置文件,然后使用上面的标志.如果你像我一样在Eclipse中工作,你可以通过双击底部“服务器”选项卡中的服务器来添加标志,然后点击“打开启动配置”.

我希望我把其他人花了很多时间来跟踪这个问题.

转载注明原文:java – 使用注释在JBoss AS 7中创建Web服务 - 代码日志