NetConnection.Call.Failed 在 Flex3/Tomcat/BlazeDS/Spring 中偶尔发生

2023-12-07

我有一个很大的问题。我使用 Flex3/Tomcat/BlazeDS/Spring 编写了一个大型应用程序,该应用程序在本地开发时运行良好,在部署到公共开发环境时运行良好,但在部署到我们的测试环境时经常失败。

当远程处理请求花费大量时间(超过 20 秒)时,失败似乎最容易发生。在我的开发服务器上,错误发生,但仅当请求花费很长时间(超过 45 秒)时才会发生。然而,错误有时也会看似立即发生(发送请求,但立即失败)。大多数错误还带有 HTTP 状态:502(网关错误),但有些错误只是显示 HTTP 失败。

除了将 war 文件放在 webapps 目录中之外,我没有对 BlazeDS 进行任何特殊操作。该应用程序通过 https 访问。远程调用仅通过“目的地”引用服务器。我们的 DEV 和 TEST 实例上的 tomcat 服务器具有相同的 java 参数(相同的 Xms 和 Xmx 等)。以下是我的相关文件:

服务配置.xml

<?xml version="1.0" encoding="UTF-8"?>
<services-config>
    <services>
        <default-channels>
           <channel ref="my-secure-amf"/>
        </default-channels>
    </services>
    <channels>
        <channel-definition id="my-secure-amf" class="mx.messaging.channels.SecureAMFChannel">
            <endpoint url="https://{server.name}:{server.port}/{context.root}/messagebroker/amfsecure" class="flex.messaging.endpoints.SecureAMFEndpoint"/>
            <properties>
                <add-no-cache-headers>false</add-no-cache-headers>
            </properties>
        </channel-definition>
    </channels>
<services-config>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    ...

    <servlet>
        <servlet-name>spring-flex</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/flexContext.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>spring-flex</servlet-name>
        <url-pattern>/messagebroker/*</url-pattern>
    </servlet-mapping>
</web-app>

flexContext.xml

<!--
    I have component-scan tags here to scan my class files. The Controller I'm using for flex has an annotation on it to define it as a remote destination. Here it is:
    @Controller
    @RemotingDestination(value = "dest", channels="my-secure-amf")
    public class FlexController {
-->

<bean id="flexExceptionTranslator" class="edu.liberty.zconduct.web.FlexExceptionTranslator" />

<flex:message-broker>
    <flex:exception-translator ref="flexExceptionTranslator"/>
    <!-- <flex:secured /> Had this previously, but it wasn't working then, either -->
</flex:message-broker>

我已接近山穷水尽了。该错误是一个应用程序破坏者。如果可以的话请帮助我。

EDIT我切换到http,仍然出现错误。 Tomcat 现在说:

警告:发送结束数据包时出错

java.net.SocketException:管道损坏

我在 apache 日志中查找 jk_mod 并看到一些类似于我发送的请求的调试信息,然后是以下内容:

[调试] ajp_send_request::jk_ajp_common.c (1592):重新发送请求正文(432)

[调试] jk_shutdown_socket::jk_connect.c (681):即将关闭套接字 68

[调试] jk_shutdown_socket::jk_connect.c (732): 关闭套接字 68 并读取 0 挥之不去的字节

[信息] ajp_connection_tcp_get_message::jk_ajp_common.c (1150): (myTestServer) 无法接收 响应头消息来自 tomcat,网络问题还是tomcat (xx.xx.xx.xx:xxxx) 已关闭 (errno=11)

[错误] ajp_get_reply::jk_ajp_common.c (1962): (myTestServer) Tomcat 已关闭 或拒绝连接。没有任何回应 已发送给客户(尚未)

[信息] ajp_service::jk_ajp_common.c (2447):(myTestServer)发送请求 tomcat失败(可恢复), (尝试=2)

[错误] ajp_service::jk_ajp_common.c (2466):(myTestServer)连接到 雄猫失败。

[调试] ajp_reset_endpoint::jk_ajp_common.c (743): (myTestServer) 重置 端点 sd = 4294967295(套接字 关闭)

[调试] ajp_done::jk_ajp_common.c (2905):回收连接池 工作 myTestServer 的 slot=0

[信息] jk_handler::mod_jk.c (2615): 服务错误=0 工人=我的测试服务器


Cornel Creanga 帮助我找到了这个解决方案。我将应用程序切换到 http 并开始接收 catalina.out 文件中的消息。我不知道为什么这会影响它,但确实如此。这些消息都说套接字中的管道损坏了。进一步调查发现涉及到jk_mod。

通过大量搜索,我发现我们的系统管理员在测试服务器上将服务器上的套接字超时设置为 10 秒,但在开发服务器上设置为 5 分钟,因此进行的大量搜索导致测试服务器超时。

系统管理员调整了 TEST 上的配置,以便另一个工作人员(有 5 分钟超时)处理对此上下文路径的调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NetConnection.Call.Failed 在 Flex3/Tomcat/BlazeDS/Spring 中偶尔发生 的相关文章

  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • 操作错误不会显示在 JSP 上

    我尝试在 Action 类中添加操作错误并将其打印在 JSP 页面上 当发生异常时 它将进入 catch 块并在控制台中打印 插入异常时出错 请联系管理员 在 catch 块中 我添加了它addActionError 我尝试在jsp页面中打
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • 将不同类型的参数传递给 jdbctemplate 查询

    我正在尝试使用带有少量不同类型参数的 where 子句从数据库中检索记录 这是我编写的简单方法 我将breedId和性别作为参数传递 public List
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • 如何在桌面浏览器上使用 webdriver 移动网络

    我正在使用 selenium webdriver 进行 AUT 被测应用程序 的功能测试自动化 AUT 是响应式网络 我几乎完成了桌面浏览器的不同测试用例 现在 相同的测试用例也适用于移动浏览器 因为可以从移动浏览器访问 AUT 由于它是响
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • 在 Maven 依赖项中指定 jar 和 test-jar 类型

    我有一个名为 commons 的项目 其中包含运行时和测试的常见内容 在主项目中 我添加了公共资源的依赖项
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐