2015-12-10 155 views
1

我正在实现一些基于soap的web服务,并且我对发布wsdl有些困惑。肥皂web服务端点发布

一段代码:

public class HelloWorldPublisher{ 
      public static void main(String[] args) { 
      Endpoint.publish("http://localhost:9999/ws/hello", new HelloWorldImpl()); 
     } 
    } 

现在,当我跑了这一点,它生成的WSDL,我可以通过链接访问它:

http://localhost:9999/ws/hello?wsdl 

这怎么可能?没有服务器在端口9999上监听,我仍然可以获取wsdl。

任何澄清将是伟大的。

+0

https://docs.oracle.com/javase/7/docs/api/javax/xml/ws/Endpoint.html – Harshil

回答

1

您正在使用的是JAX-WS的RPC样式。一旦你做了Endpoint.publish java默认使用java开发包中包含的轻量级HTTP服务器实现。它使用一个嵌入式容器,它是在同一个JVM中运行的东西。尝试打开源代码Endpoint.publish

+0

是的我正在使用RPC风格。 @SOAPBinding(style = Style.RPC) – CuriousMind