小编abd*_*nno的帖子

如何强制Commons HTTPClient 3.1仅对HTTPS使用TLS 1.2?

我希望强制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 ssl https apache-commons-httpclient

22
推荐指数
1
解决办法
4万
查看次数

在客户端查找本机java CORBA的超时属性

我使用的是原生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.ORBInitialHostorg.omg.CORBA.ORBInitialPort设置主机和端口.

任何帮助表示赞赏:)

java timeout corba properties

8
推荐指数
2
解决办法
6707
查看次数

自定义服务异常被抛出为AxisFault

我们有一个从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 ,其中类名被设置为字符串以供稍后通过反射使用.

java soap axis2 web-services soap-client

7
推荐指数
1
解决办法
713
查看次数

在Spring MVC中,使用'redirect:process'或'redirect:/ process'会导致会话或会话值丢失吗?

我在Spring MVC 3.2应用程序中遇到了奇怪的行为,我注意到只有当重定向以另一种方式完成时才会发生这种情况.所以我的问题是:

  1. 正在做' 重定向:/进程 ' 与' redirect:process '有什么不同,用于重定向到内部控制器?

    添加的斜杠是否会产生任何影响,例如影响会话处理?

  2. 会话丢失(或会话属性丢失)的原因是什么?

    我通过我的应用程序阅读了一个值; 即使你在很多情况下重定向,当我在Controller URI之前添加一个斜杠时,在生产时我有时会失去这个值.

    有关如何解决丢失的会话值的任何线索?

注意:我正在使用方法httpRequest.getSession().setAttributehttpSession.getAttribute访问会话.

java session redirect spring spring-mvc

6
推荐指数
1
解决办法
939
查看次数

如果不对金额进行任何操作,BigDecimal.doubleValue() 的准确度如何

我需要发送一个值作为“ double ”,但是我是:

  1. 一个值作为long
  2. 将其转换BigDecimal
  3. 在BigDecimal上调用方法scaleByPowerOfTen(使用“-2”使分成为整数值)。
  4. BigDecimal上调用doubleValue()以获取所需的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 precision double soap bigdecimal

5
推荐指数
1
解决办法
4075
查看次数