JBoss-5.1.0にJavaEEアプリケーションをデプロイしました。セキュリティを強化するために、Apache+を有効にしたSSLを使用してJBossを前面に出しました。Tomcatは(ポート8001のAJP 1.3)を使用してサーバーと通信します。したがって、私の構成は次のようになります。
tomcat:443 (ssl) ---|--- Jboss:8080 (IpAddress:8080) (http)
この構成は、フレックス部分を除くすべての静的ページと動的ページでうまく機能するようです。私の問題は、フレックス部分で何かにアクセスしようとすると始まります。AMFチャネルに障害が発生し、サーバーログに次のスタックトレースが表示されます。
2012-04-13 16:19:50,940エラー[org.apache.catalina.core.ContainerBase。[jboss.web]。[localhost]。[/catissuecore]。[MessageBrokerServlet]](ajp-127.0.0.1-8009- 4)サーブレットMessageBrokerServletのServlet.service()が例外flex.messaging.security.SecurityExceptionをスローしました:セキュアエンドポイント'/ messagebroker/amfsecure'はセキュアプロトコルを介して接続する必要があります。 flex.messaging.endpoints.AbstractEndpoint.validateRequestProtocol(AbstractEndpoint.java:862)at flex.messaging.endpoints.AbstractEndpoint.service(AbstractEndpoint.java:630)at flex.messaging.endpoints.AMFEndpoint.service(AMFEndpoint.java:99 )at flex.messaging.MessageBrokerServlet.service(MessageBrokerServlet.java:424)at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 290)org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)at org.apache.catalina.core .ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)at org.apache.catalina.core.StandardContextValve .invoke(StandardContextValve.java:191)at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92 )org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)atorg.apache.catalina。 core.StandardHostValve.invoke(StandardHostValve.java:127)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)at org.apache.catalina .core.StandardEngineValve.invoke(StandardEngineValve.java:109)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:436 )org.apache.coyote.ajp.AjpProtocol $ AjpConnectionHandler.process(AjpProtocol.java:384)at org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:447)atjava.lang。 Thread.run(Thread.java:662)invoke(CachedConnectionValve.java:158)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)at org.apache .coyote.ajp.AjpProcessor.process(AjpProcessor.java:436)at org.apache.coyote.ajp.AjpProtocol $ AjpConnectionHandler.process(AjpProtocol.java:384)at org.apache.tomcat.util.net.JIoEndpoint $ Worker .run(JIoEndpoint.java:447)at java.lang.Thread.run(Thread.java:662)invoke(CachedConnectionValve.java:158)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)at org.apache .coyote.ajp.AjpProcessor.process(AjpProcessor.java:436)at org.apache.coyote.ajp.AjpProtocol $ AjpConnectionHandler.process(AjpProtocol.java:384)at org.apache.tomcat.util.net.JIoEndpoint $ Worker .run(JIoEndpoint.java:447)at java.lang.Thread.run(Thread.java:662)ajp.AjpProtocol $ AjpConnectionHandler.process(AjpProtocol.java:384)at org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:447)at java.lang.Thread.run(Thread.java: 662)ajp.AjpProtocol $ AjpConnectionHandler.process(AjpProtocol.java:384)at org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:447)at java.lang.Thread.run(Thread.java: 662)
remote-config.xmlで次のチャネルを定義しました。
<default-channels>
<channel ref="my-amf"/>
<channel ref="my-secure-amf"/>
</default-channels>
そして私のservices-config.xmlには次の構成があります
<channels>
<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
<endpoint uri="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<polling-enabled>false</polling-enabled>
</properties>
</channel-definition>
<channel-definition id="my-secure-amf" class="mx.messaging.channels.SecureAMFChannel">
<endpoint uri="https://{server.name}:{server.port}/{context.root}/messagebroker/amfsecure" class="flex.messaging.endpoints.SecureAMFEndpoint"/>
<properties>
<!--HTTPS requests on some browsers do not work when pragma "no-cache" are set-->
<add-no-cache-headers>false</add-no-cache-headers>
</properties>
</channel-definition>
誰かがこの問題に直面していますか?
どんなポインタも大いに役立ちます。