java - 用于 Java 的进程内 SOAP 服务服务器

标签 java web-services soap axis

好的,我正在开发一个将部署到许多机器(Windows、Linux、AIX、z/Linux、openVMS 等)的程序。我希望该应用程序包含 SOAP Web 服务,但我不想捆绑 tomcat 或为这些服务运行单独的服务(我希望它们与应用程序的其余部分处于同一进程中)。

基本上我正在寻找的是我可以定义类的东西(比如 WebServices)。我也可以编写 WSDL 或任何其他类型的服务描述。我想要这样的东西:

SOAPServer server = makeMeASoapServer();
//do config on the server
server.add(new WebService(...));
server.listen(port);

显然名称和参数会有所不同。

我一直在看 Axis,它似乎提供了这个,但我不知道我需要使用哪些类。我疯狂地想要这种行为吗?我无法相信更多的人不在寻找这个,我一直在使用 .NET 客户端中的嵌入式 Web 服务这样做。

最佳答案

似乎 jdk 6.0 已经带有一个 jax-ws 实现,以及一个可以嵌入的小服务器。 我还没有弄清楚所有的部分,但这是一个开始:

mkdir -p helloservice/endpoint/

helloservice/endpoint/Hello.java :

package helloservice.endpoint;

import javax.jws.WebService;

@WebService()
public class Hello {
  private String message = new String("Hello, ");

  public void Hello() {}

  public String sayHello(String name) {
    return message + name + ".";
  }
}

helloservice/endpoint/Server.java:

package helloservice.endpoint;
import javax.xml.ws.Endpoint;

public class Server {

    protected Server() throws Exception {
        System.out.println("Starting Server");
        Object implementor = new Hello();
        String address = "http://localhost:9000/SoapContext/SoapPort";
        Endpoint.publish(address, implementor);
    }

    public static void main(String args[]) throws Exception {
        new Server();
        System.out.println("Server ready...");

        Thread.sleep(5 * 60 * 1000);
        System.out.println("Server exiting");
        System.exit(0);
    }
}

构建事物:

mkdir build
javac -d build helloservice/endpoint/*java
$JAVA_HOME/wsgen -d build -s build -classpath .  helloservice.endpoint.Hello

运行这个东西:

java -cp  build helloservice.endpoint.Server

http://localhost:9000/SoapContext/SoapPort 上运行的东西现在。 您可以在 http://localhost:9000/SoapContext/SoapPort?WSDL 上获取 wsdl

还没有开始做客户..

关于java - 用于 Java 的进程内 SOAP 服务服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1792737/

相关文章:

visual-studio-2010 - 无法使用自动创建的 WSDL 代理类发送 SOAP 请求

c# - .NET SOAP 不在请求 header 中发送 BASIC 身份验证

java - 刷新 JFrame 中的 JList

java - 使用new()运算符创建对象是多态吗?

java - 正则表达式仅保留特定类型的字母、空格和小数

java - 集合<是什么意思?扩展 EmpApp>?

Java Web Service 客户端基本身份验证

java - 无法映射 SOAP 服务响应

java - 如何使用jmeter加载测试soap api

web-services - WS 安全中涉及的概念?