2013-10-09 46 views
0

在Apache Chemistry中是否有任何设置强制Apache HTTP Client进行连接而不是默认的Java HTTP功能?使用ApacheClientHttpInvoker而不是DefaultHttpInvoker

在包org.apache.chemistry.opencmis.client.bindings.spi.http中有ApacheClientHttpInvoker类,它可以满足我的需求,但是我不知道如何在没有源代码修改的情况下使用它?

我问这是因为Lotus Notes的9有BUG在JVM和java.net.HttpURLConnection中总是会引发NullPointerException异常......

感谢您的帮助。

回答

1

设置会话参数HTTP_INVOKER_CLASS为“org.apache.chemistry.opencmis.client.bindings.spi.http.ApacheClientHttpInvoker”,并确保你在你的classpath中有Apache的HTTP客户端罐子(与4.2.5测试) 。

更多会话参数,请参阅: http://chemistry.apache.org/java/0.10.0/maven/apidocs/org/apache/chemistry/opencmis/commons/SessionParameter.html

+0

谢谢,这个工作,我已经修改ClientBinding源代码总是使用ApacheClientHttpInvoker但那不是因为更新的解决方案。现在,我在申请凭证时遇到“未经授权”例外。这与DefaultHTTPInvoker类一起工作。我错过了什么? – Brlja

+0

ApacheClientHttpInvoker相当新颖,并没有很好的测试。这就是为什么你无法找到任何有关它的信息。它可能有错误! 话虽如此,基本身份验证已经过测试,应该没有任何额外的配置工作。 –

+0

弗洛里安,我已经用基本身份验证欺骗了代码,它将默认http作为simillar(身份验证)。无论如何,用户名和密码得到b64编码,并将其作为http头发送。此方法适用于默认http,但不适用于Apache http。在我的其他项目中,我使用Client.setAuth(Credentials)并且工作正常。我可以修改AbstractApache类,但由于前向一致性,我不喜欢它。如果你接近开发团队,你可以检查一下吗? – Brlja