加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 具有本机@WebService支持的可嵌入Web服务器,作为Endpoin

发布时间:2020-12-15 03:10:31 所属栏目:Java 来源:网络整理
导读:我花了一些时间来调查Endpoint.publish可以做什么和不能做什么,看起来你很快就进入了无证领域. 如果您构建一个简单的独立应用程序,它使用Endpoint.publish公开一个或多个@WebService注释类,然后您遇到无法再使用Endpoint.publish的情况(出于任何原因)什么是
我花了一些时间来调查Endpoint.publish可以做什么和不能做什么,看起来你很快就进入了无证领域.

如果您构建一个简单的独立应用程序,它使用Endpoint.publish公开一个或多个@WebService注释类,然后您遇到无法再使用Endpoint.publish的情况(出于任何原因)什么是最简单的迁移路径?

我知道您可以使用sun-jaxws.xml和可选的Metro jar创建一个WAR,然后可以将其部署到嵌入式Web服务器(如Jetty或Winstone),但我喜欢简单的“拿这个类并在这个URL上公开它” Endpoint.publish()的API,没有任何XML或完整容器.

有没有一个很好的方法来做到这一点?

解决方法

It’s been said,您可以在 com.sun.net.httpserver.HttpServer的实例中自定义端点的HTTP行为.谨慎使用com.sun API始终是一个好主意,但根据您的具体情况,这可能是合适的.例如,有一个 HttpsServer子类可用于提供SSL.

这个过程似乎是:

>使用HttpServer.create(new InetSocketAddress(listenPortNumber),waitQueueDepth)创建服务器实例.
>使用server.createContext("/path")创建将托管端点的上下文.
>使用Endpoint.create(new RpcLitEndpoint())创建端点.目前尚不清楚RpcLitEndpoint的定义位置或是否严格要求;它可能是Metro JAX-WS的一部分.
>调用endpoint.publish(context)以将端点与HttpServer(或HttpsServer)实例相关联.

完成后,使用endpoint.stop和server.stop关闭.

还有一个blog entry on blogs.oracle.com描述了自定义网络传输的创建.它没有足够的细节让我从快速扫描中获得很好的理解,但也许你可以从中获得更多.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读