jax-ws java_Java如何初始化JAXB / JAX-WS / etc实现?

找出完整的逻辑.实际上JVM启动时没有任何反应.它全部基于延迟加载,例如真正的JAX-WS /任何提供程序仅在第一次需要时加载/实例化.

在加载JAX-WS实现的情况下:

假设我们想要使用以下代码调用Web服务:

MyService service = new MyService_Service();

MyServiceSoap port = service.getMyServiceSoap();

port.mymethod();

然后,以下事件初始化JAX-WS实现:

>任何JAX-WS Web服务都扩展了javax.xml.ws.Service,因此MyService_Service扩展了Service

>当您创建Web服务的实例时,其超类(javax.xml.ws.Service)也会被初始化(构造函数)

>“Service”的构造函数调用javax.xml.ws.spi.Provider.provider(),这是一个静态方法,它使用javax.xml.ws.spi.FactoryFinder.find()来查找并实例化已实现的实现.

假设我们想要使用以下代码发布Web服务:

@WebService(endpointInterface = "my.package.MyService")

public class MyServiceImp implements MyService {

...

}

MyServiceImp service = new MyServiceImp();

InetSocketAddress addr = new InetSocketAddress(8080);

Executor executor = Executors.newFixedThreadPool(16);

HttpServer server = new HttpServer(addr);

server.setExecutor(executor);

HttpContext context = server.createContext("/MyService");

Endpoint endpoint = Endpoint.create(service);

endpoint.publish(context);

server.start();

然后,以下事件初始化JAX-WS实现:

> Endpoint.create()运行Provider.provider().createEndpoint()

> Provider.provider()是一个静态方法,它使用javax.xml.ws.spi.FactoryFinder.find()来查找并实例化已配置的实现.

以下链接帮助我理解了这一点:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值