0

2012/06/21 更新 少しだけ更新。今日、サーバーへの接続を妨げている例外をついにキャッチしました。呼び出した後に得られるものは次のgetInputStream()とおりです。

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

================================================== =========

オリジナルメッセージ:

クライアント (クライアントは完全に私が作成したものではありません) を TLS 経由で公開された Web サービスと連携させようとしています (クライアントは http 経由で動作します)。私はこの分野に不慣れで、これまで Web サービスを密接に扱ったことはありません。Web サービスが正しく公開され、アクセス可能であることを soapUI で確認しました。アドレスはhttps://:9080/SOAOICCT/services/SessionService?wsdlです。リクエストを送信して返信を受け取ることができます。しかし、私のクライアントは多くの例外をスローします。最も重要なものは次のとおりです。

javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException: Failed to create service.
    at <My class.my method>(SessionServiceDAO.java:548)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
......
Caused by: javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException: Failed to create service.
    at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:150)
    at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:65)
    at javax.xml.ws.Service.<init>(Service.java:56)
.........
Caused by: javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: java.lang.IllegalArgumentException: InputSource must have a ByteStream or CharacterStream
    at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:226)
    at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:179)
    at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:91)
    ... 70 more
Caused by: java.lang.IllegalArgumentException: InputSource must have a ByteStream or CharacterStream
    at org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:983)
    at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:217)
    ... 72 more

この問題をメソッドまで追跡しましたjava.net.HttpURLConnection.getResponseCode()。ここにあります:

public int getResponseCode() throws IOException {
    /*
     * We're got the response code already
     */
    if (responseCode != -1) {
        return responseCode;
    }

    /*
     * Ensure that we have connected to the server. Record
     * exception as we need to re-throw it if there isn't
     * a status line.
     */
    Exception exc = null;
    try {
            getInputStream();
    } catch (Exception e) {
        exc = e;
    }

で例外が発生しgetInputStream()、実際にサーバーに接続することはありません。この例外は後でここに飲み込まれorg.apache.cxf.transport.TransportURIResolver.resolve(String, String)ます

} catch (Exception e) {
                //ignore
            } 

問題は、認証やパラメーターのような非常に単純なもののようです。Web サービスに接続できない明らかな理由はありますか? 私は非常に単純な間違いさえ犯すことができる初心者です。

これが私のものhttp:conduitです:

<http:conduit name="*.http-conduit">
      <http:tlsClientParameters secureSocketProtocol="TLS">
            <sec:trustManagers>
                <sec:keyStore type="JKS" password="123123" file="config.soa.client/trustedCA.keystore"/>
            </sec:trustManagers>

            <sec:cipherSuitesFilter>
                <sec:include>SSL_RSA_WITH_RC4_128_MD5</sec:include>
                <sec:include>SSL_RSA_WITH_RC4 _128_SHA</sec:include>
                <sec:include>SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA</sec:include>
                <sec:include>.*_EXPORT_.*</sec:include>
                <sec:include>.*_EXPORT1024_.*</sec:include>
                <sec:include>.*_WITH_DES_.*</sec:include>
                <sec:include>.*_WITH_NULL_.*</sec:include>
                <sec:exclude>.*_DH_anon_.*</sec:exclude>
            </sec:cipherSuitesFilter>
        </http:tlsClientParameters>
    </http:conduit>

少し更新。今日、サーバーへの接続を妨げている例外をついにキャッチしました。呼び出した後に得られるものは次のgetInputStream()とおりです。

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
4

0 に答える 0