- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的过滤器类,它使用 Apache HttpClient 连接到同一 tomcat 实例中的不同应用程序。最近,为了提高 Tomcat 服务器的性能,我们向 tomcat 添加了一些自定义 JVM 参数,其中一个参数如下
export CATALINA_OPTS="$CATALINA_OPTS -javaagent:/app/wily/Agent.jar -Dcom.wily.introscope.agentProfile=/app/wily/IntroscopeAgent_IAASTomcat.profile -Dcom.wily.introscope.agent.agentName=iaas_dev_tomcat_instance"
添加此属性后,Apache HttpClient 代码不起作用并抛出以下异常堆栈跟踪。
java.lang.IllegalArgumentException: Socket not created by this factory.
at org.apache.http.conn.scheme.PlainSocketFactory.isSecure(PlainSocketFactory.java:134)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:136)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
at org.apache.http.impl.client.DefaultClientRequestDirector.execute(DefaultClientRequestDirector.java:309)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:501)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:456)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:422)
at com.vzw.issi.filters.UserValidationFilter.doFilter(UserValidationFilter.java:101)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:205)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
以下是我的过滤器代码。
httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(securityServiceURL);
// Getting the SM Header
httpPost.setHeader(StatusReportConstants.SM_USER, httpServletRequest.getHeader(StatusReportConstants.SM_USER));
List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
urlParameters.add(new BasicNameValuePair(StatusReportConstants.SOURCE_APP_NAME, StatusReportConstants.APP_DISPLAY_NAME));
urlParameters.add(new BasicNameValuePair(StatusReportConstants.SUB_SERVICE_NAME, StatusReportConstants.SERVICE_VALIDATE_USER));
httpPost.setEntity(new UrlEncodedFormEntity(urlParameters));
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
String jsonString = null;
if (null != httpEntity) {
jsonString = EntityUtils.toString(httpEntity);
}
HttpServletResponse httpServletResponse = (HttpServletResponse)response;
我仅通过 http 进行通信。当我评论 JVM 参数时,此 httpclient 代码工作正常。
为什么会发生这种情况?
最佳答案
显然,代理使用了 java.net.Socket
类,这混淆了旧版本的 HttpClient 连接管理代码。如果您将 HttpClient 升级到版本 4.2.6 或 4.3.1,问题就会消失。
关于java - Apache HttpClient 在使用 Wily 代理时抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19458662/
我有一个简单的过滤器类,它使用 Apache HttpClient 连接到同一 tomcat 实例中的不同应用程序。最近,为了提高 Tomcat 服务器的性能,我们向 tomcat 添加了一些自定义
我是 python 和 kivy 的新手,我想运行我的第一个 kivy 程序。当我运行该程序时出现此错误: /usr/bin/python3.4 /home/mmu/PycharmProjects/S
我真正想知道的是,我们如何使用 Wily Introscope 对基于 Java 的应用程序进行方法级别跟踪?我想跟踪我的应用程序中存在的所有类的所有方法。请帮忙。 最佳答案 您需要:Introsco
我今天通过 sudo apt-get install openjdk-8-jdk 下载了 OpenJDK 8,它似乎没有包含 JavaFX。 > java -versionopen
我是一名优秀的程序员,十分优秀!