在 Eclipse 中使用 Tomcat 运行时调试的 Bluemix 失败



>我遇到与 Bluemix 远程调试会话未启动相同的问题 尝试从 Eclipse 在 Bluemix Tomcat 服务器上调试我的 Web 应用程序时,请按照以下步骤操作。

  1. 全新安装的日食-jee-neon-R-win32-x86_64 和所有必需的 Eclipse 插件(例如,用于 Bluemix for Neon 的 Eclipse 工具)。
  2. 在 Bluemix 中创建了一个新的 Cloud Foundry 应用程序,已选择Tomcat 作为运行时,然后添加 Git 并构建和部署示例 Web名为"TomcatHelloWorldApp"的应用程序。
  3. 克隆'TomcatHelloWorldApp' Web 应用程序到我的 Eclipse 从 Jazz Git存储 库。
  4. 在 Eclipse 中创建新的 IBM Bluemix 服务器,添加并推送"TomcatHelloWorldApp"网络应用程序。
  5. 右键单击 IBM Bluemix 服务器下的 Web 应用程序,然后选择"启用应用程序调试"。

但是,我收到下面的错误。即使对于 Bluemix 创建的默认 Web 应用程序,它也无法正常工作:

[2016-07-17 14:15:54.854] bluemixMgmgClient - ???? [pool-1-thread-1] .... ERROR --- ClientProxyImpl: Cannot create the websocket connections for asmilk
com.ibm.ws.cloudoe.management.client.exception.ApplicationManagementException: javax.websocket.DeploymentException: The HTTP response from the server [500] did not permit the HTTP upgrade to WebSocket
    at com.ibm.ws.cloudoe.management.client.impl.ClientProxyImpl.onNewClientSocket(ClientProxyImpl.java:161)
    at com.ibm.ws.cloudoe.management.client.impl.ClientProxyImpl$RunServerTask.run(ClientProxyImpl.java:272)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: javax.websocket.DeploymentException: The HTTP response from the server [500] did not permit the HTTP upgrade to WebSocket
    at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:374)
    at com.ibm.ws.cloudoe.management.client.impl.ClientProxyImpl.onNewClientSocket(ClientProxyImpl.java:158)
    ... 6 more
[2016-07-17 14:16:11.938] bluemixMgmgClient - ???? [pool-1-thread-1] .... ERROR --- ClientProxyImpl: Cannot create the websocket connections for asmilk
com.ibm.ws.cloudoe.management.client.exception.ApplicationManagementException: javax.websocket.DeploymentException: The HTTP response from the server [500] did not permit the HTTP upgrade to WebSocket
    at com.ibm.ws.cloudoe.management.client.impl.ClientProxyImpl.onNewClientSocket(ClientProxyImpl.java:161)
    at com.ibm.ws.cloudoe.management.client.impl.ClientProxyImpl$RunServerTask.run(ClientProxyImpl.java:272)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: javax.websocket.DeploymentException: The HTTP response from the server [500] did not permit the HTTP upgrade to WebSocket
    at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:374)
    at com.ibm.ws.cloudoe.management.client.impl.ClientProxyImpl.onNewClientSocket(ClientProxyImpl.java:158)
    ... 6 more

然后我尝试修改代码并使其在Java 1.8中正常工作将 Maven pom.xml 文件修改为

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin> 

在清单 .yml 文件中添加以下设置。

  env:
    JBP_CONFIG_IBMJDK: '[version: 1.8.+]'
    JBP_CONFIG_LIBERTY: 'app_archive: {features: [websocket-1.1, servlet-3.1]}

同时修改构建外壳命令,如下所示

#!/bin/bash
export JAVA_HOME=/opt/IBM/java8
mvn -B package

它已成功构建和部署,现在可以在 Java 1.8 上运行良好。

但是当我尝试"启用应用程序调试"时,我又遇到了同样的问题......你能在这方面提供任何帮助吗?

如果您使用 IBM JVM 作为工作台 JVM,那么 Bluemix 故障排除文档提供了解决此问题的更多详细信息。

最新更新