我在Eclipse的控制台应用程序中创建了以下三个类:
@WebService(endpointInterface = "uk.co.hello.Details")
public class DetailsImpl implements Details{
public String getDetails() {
return "Hello";
}
}
@WebService
@SOAPBinding(style = Style.RPC)
public interface Details{
@WebMethod String getDetails();
}
public class DetailsPublisher{
public static void main(String[] args) {
Endpoint endpoint = Endpoint.publish("http://localhost:9900/mytest", new DetailsImpl());
System.out.println(endpoint.isPublished());
}
}
一切都很好,我可以发布我的网络服务并使用它。
现在我创建了一个Web应用程序,我想在JBoss上部署我的东西。可能我不再需要主方法,而是需要其他方法。有人能举例说明我需要改变什么才能产生一场有效的战争吗?
答案 0 :(得分:0)
您可以将EJB
发布为SOAP
服务,但我从未听说过任何人在战争中在网络层发布SOAP服务。
为了使它适用于支持EJB 3.0的JBoss: a)指定EJB接口。
import java.rmi.Remote;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
@WebService
@SOAPBinding(style = Style.RPC)
public interface SOAPService extends Remote {
String service();
}
b)指定EJB:
import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.jws.WebService;
@Stateless
@WebService(endpointInterface = "full.package.and.name.of.SOAPService")
@Remote(SOAPService.class)
public class EchoBean {
public String service() {
return "SOAP Serviced";
}
}
c)将JBoss部署为EJB jar。
d)测试
答案 1 :(得分:0)
如果你知道spring,你可以使用cxf框架,可以使用eclipse找到一个好的教程 here。您可以使用自下而上的方法