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

标签 java eclipse debugging tomcat ibm-cloud

我遇到了与 Bluemix remote debugging session not starting 相同的问题 当尝试从 Eclipse 在 Bluemix Tomcat 服务器上调试我的 Web 应用程序时,请按照以下步骤操作。

  1. 全新安装的 eclipse-jee-neon-R-win32-x86_64 和所有 需要 Eclipse 插件(例如,Bluemix for Neon 的 Eclipse 工具)。
  2. 在 Bluemix 中创建了一个新的 Cloud Foundry 应用程序,选择 Tomcat 作为运行时,然后添加 Git 并构建和部署示例 Web 名为“TomcatHelloWorldApp”的应用程序。
  3. 克隆 从 Jazz Git 到我的 Eclipse 的“TomcatHelloWorldApp”Web 应用程序 存储库。
  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> 

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

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

同时修改Build Shell命令如下

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

它构建和部署成功,现在可以与 Java 1.8 一起正常工作。

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

最佳答案

如果您使用 IBM JVM 作为工作台 JVM,Bluemix troubleshoot文档有解决此问题的更多详细信息。

关于java - 在 Eclipse 中使用 Tomcat 运行时调试的 Bluemix 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38418884/

相关文章:

java - Java编译器是否优化常量变量计算?

java - 打印循环队列

java - 将字符串日期转换为 java.sql.Date

java - JAX RS 获取对象列表

eclipse - eclipse的vi插件?

eclipse - 如何为项目启用 MercurialEclipse 插件?

eclipse - 不使用 Eclipse 运行 Selenium 测试用例/套件

ios - 在 Xcode 和 iOS 中调试应用程序启动

javascript - 在 VS Code "Debug Console"中,运行 JavaScript 等待函数

javascript - 在 Internet Explorer 中调试 JavaScript 时浏览器无法交互