我希望强制Apache Commons HTTP-Client(版本3.1)使用TLS 1.2作为HTTPS 的唯一协议.
这是因为服务器应该升级到TLS 1.2并且不再接受任何旧协议(导致"连接重置"被返回).
对于进一步的上下文,可能是不相关的,HTTP-Client与Axis2一起用于制作SOAP; 用于设置HttpClient的一些代码如下:
MultiThreadedHttpConnectionManager connMgr = new MultiThreadedHttpConnectionManager();
this.httpClient = new HttpClient(connMgr);
// initialize HttpClient parameters
HttpClientParams hcParams = this.httpClient.getParams();
// Maximum time to wait to receive connection from pool
hcParams.setConnectionManagerTimeout(this.maxWait);
hcParams.setSoTimeout(this.timeout);
hcParams.setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(this.retryCount, false));
// Initialize global Connection manager parameters
HttpConnectionManagerParams cmParams = connMgr.getParams();
cmParams.setDefaultMaxConnectionsPerHost(this.maxActive);
cmParams.setStaleCheckingEnabled(this.checkStaleConnections);
cmParams.setConnectionTimeout(this.timeout);
Run Code Online (Sandbox Code Playgroud)
非常感谢您的帮助!
我使用的是原生Java附带的CORBA(ORB),没有使用第三方库.
我需要CORBA客户端属性超时,以便在客户端设置超时并限制连接保持打开的时间; 应该为所有场景设置,以限制最大请求时间:
初始化连接
重新绑定连接
总请求时间
我正在测试通过在服务器上休眠(在服务器方法逻辑内),并且客户端根本没有超时.
在网上找到适当的文件非常困难; 我试图使用以下所有属性,但无济于事:
aProperties.put("com.sun.CORBA.transport.ORBTCPReadTimeouts","100:300:3000:20"); aProperties.put("com.sun.corba.eetransport.ORBTCPTimeouts","500:2000:50:1000"); aProperties.put("com.sun.corba.ee.transport.ORBWaitForResponseTimeout",10);
为了更清楚,在这些属性(上面)旁边使用属性org.omg.CORBA.ORBInitialHost和org.omg.CORBA.ORBInitialPort设置主机和端口.
任何帮助表示赞赏:)
我们有一个从SOAP Web服务读取的Axis2客户端; 使用WSDL2JAVA生成新的客户端存根类并重命名其包时出现问题.生成工具本身不会导致问题,但WSDL2JAVA没有为所有类重命名包,所以我必须自己做.
有没有想过为这些类重命名包的最佳方法,没有问题?比如以聪明的方式做一个String替换?
在某些情况下,Web服务会抛出业务异常,并且它们会被调用代码直接捕获,但这不再发生,而不是SPECIALException,客户端现在捕获AxisFault.
您可以在下面看到XML响应:
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server</faultcode>
<faultstring>Exception message, due to business error.</faultstring>
<detail>
<ns2:SPECIALException
xmlns:ns2="http://com.bla.com/common/exception/xsd/2008/08">
<ns2:code>7</ns2:code>
<ns2:message>Exception message, due to business error.</ns2:message>
</ns2:SPECIALException>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)
更详细地检查这一点,差异可能是由于生成的Bla ServiceStub类中的方法populateFaults ,其中类名被设置为字符串以供稍后通过反射使用.
我在Spring MVC 3.2应用程序中遇到了奇怪的行为,我注意到只有当重定向以另一种方式完成时才会发生这种情况.所以我的问题是:
正在做' 重定向:/进程 ' 与' redirect:process '有什么不同,用于重定向到内部控制器?
添加的斜杠是否会产生任何影响,例如影响会话处理?
会话丢失(或会话属性丢失)的原因是什么?
我通过我的应用程序阅读了一个值; 即使你在很多情况下重定向,当我在Controller URI之前添加一个斜杠时,在生产时我有时会失去这个值.
有关如何解决丢失的会话值的任何线索?
注意:我正在使用方法httpRequest.getSession().setAttribute并httpSession.getAttribute访问会话.
我需要发送一个值作为“ double ”,但是我是:
现在我知道,当您对双精度值应用算术运算时,双精度值会失去精度,但是,如果我尝试基于 BigDecimal 按原样发送双精度值,例如(我相信)上述情况,我可能会得到什么。
这很重要,因为我必须以这种方式通过 SOAP 发送货币值 - 没有其他方式。
我还有这样的场景:使用String创建BigDecimal,然后在其上调用doubleValue() 。在这种情况下我能得到什么?
编辑:示例代码:
long amountInCents = 1852;
BigDecimal amountInWholeUnits = BigDecimal.valueOf(amountInCents).scaleByPowerOfTen(-2);
double amountToSend = amountInWholeUnits.doubleValue();
Run Code Online (Sandbox Code Playgroud)
至于金额以字符串形式提供的情况:
double amountToSend = new BigDecimal("18.52").doubleValue();
Run Code Online (Sandbox Code Playgroud)
现在我有了示例代码,我只是想我可以测试和查看,所以我做了一个for循环并使用了System.out.println:到目前为止一切都很好,值是正确的,所以我相信发送时会是相同的通过 SOAP。如果我错了,请纠正我。
java ×5
soap ×2
axis2 ×1
bigdecimal ×1
corba ×1
double ×1
https ×1
precision ×1
properties ×1
redirect ×1
session ×1
soap-client ×1
spring ×1
spring-mvc ×1
ssl ×1
timeout ×1
web-services ×1