cod*_*dde 7 java deployment heroku endpoint websocket
我已经按照这个非常基本的教程来设置Java中的WebSocket端点:http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/HomeWebsocket/WebsocketHome.html
然而,Heroku希望我依赖Play Framework:https://devcenter.heroku.com/articles/play-java-websockets
我的问题是:如何在没有任何其他框架的情况下部署相同的内容,我应该通过哪些程序才能使其工作?
你遇到的问题是这样的:
您遵循的教程是针对 GlassFish 应用程序服务器编写的,但 Heroku 仅支持 Tomcat 8 和 Jetty。请参阅此处: https: //devcenter.heroku.com/articles/war-deployment
但不用担心,我移植并测试了该教程以在 Tomcat 8 上运行。
我还添加了 javax.json 规范的 glassfish 实现。(确保下载实现而不是规范接口)您可以在这里找到它:http ://central.maven.org/maven2/org/glassfish/javax.json/1.0.4/
我还注意到为什么你的index.html在本地不起作用:我认为这是因为WebSocket URL被硬编码在websocket.js文件中。我冒昧地通过使其动态化来解决这个问题。
以下是完整的 NetBeans 8.0.2 项目:
http://ray.hulha.net/WebsocketHome.zip
以下是从 NetBeans 7 或 8 内部创建 war 文件的最佳方法:

然而有一个问题,Heroku 上的 Tomcat 8 缺少 websocket 插件。
但不用担心,您可以手动将其添加到 war 文件中。步骤如下:
在此处下载 Tomcat websocket 插件:
http://central.maven.org/maven2/org/apache/tomcat/embed/tomcat-embed-websocket/8.0.29/tomcat-embed-websocket-8.0.29.jar
war 文件实际上只是一个 zip 文件。所以我使用7-zip打开war文件。然后导航到 war 文件内的 WEB-INF/lib 文件夹。
将罐子复制到战争中。将 tomcat-embed-websocket-8.0.29.jar 拖放到 7-Zip 内的 war 文件的 lib 文件夹中。
Z-Zip 会询问您是否确实要将 jar 复制到 war 文件中。说是。
以下是已编译的 war 文件,其中包含准备在 Heroku 上部署的 tomcat-embed-websocket-8.0.29.jar:http: //ray.hulha.net/WebsocketHome.war
我使用这个命令来部署它:
heroku war:deploy WebsocketHome.war --app websockethome
Run Code Online (Sandbox Code Playgroud)
确保将最后的应用程序名称替换为您的应用程序名称。
这是工作结果: http: //websockethome.herokuapp.com/
| 归档时间: |
|
| 查看次数: |
404 次 |
| 最近记录: |