1

私はまだJavaWebサービスに慣れていないことを考えており、克服できない本当の障害にぶつかっています。

Webサービスをデプロイし、@Statelesshttps経由でそのWSDLにアクセスしようとしています。アクセスしようとすると、ブラウザで次のエラーが発生します。

Error generating artifacts for the following WSDL https://localhost:8181/TestService/Test?WSDL

Possible causes can be invoking https when the application is not configured for security

コンソールに次のエラーが表示されます。

INFO: parsing WSDL...

WARNING: Invalid request scheme for Endpoint Test. Expected http . Received https
INFO: [ERROR] Premature end of file.
INFO:   line 1 of https://localhost:8181/TestService/Test?WSDL
WARNING: Invalid request scheme for Endpoint Test. Expected http . Received https
WARNING: MEX0008:Failed to parse metadata returned from server at https://localhost:8181/TestService/Test?WSDL using protocol SOAP_1_2. Continuing attempts.
WARNING: Invalid request scheme for Endpoint Test. Expected http . Received https
WARNING: MEX0008:Failed to parse metadata returned from server at https://localhost:8181/TestService/Test?WSDL using protocol SOAP_1_1. Continuing attempts.
WARNING: Invalid request scheme for Endpoint Test. Expected http . Received https
WARNING: MEX0008:Failed to parse metadata returned from server at https://localhost:8181/TestService/Test?WSDL/mex using protocol SOAP_1_2. Continuing attempts.
WARNING: Invalid request scheme for Endpoint Test. Expected http . Received https
WARNING: MEX0008:Failed to parse metadata returned from server at https://localhost:8181/TestService/Test?WSDL/mex using protocol SOAP_1_1. Continuing attempts.
INFO: [ERROR] Premature end of file.
Failed to read the WSDL document: https://localhost:8181/TestService/Test?WSDL, because 1) could not find the document; /2) the document could not be read; 3) the root element of the document is not <wsdl:definitions>.
INFO: [ERROR] failed.noservice=Could not find wsdl:service in the provided WSDL(s): 
 At least one WSDL with at least one service definition needs to be provided.
INFO:   Failed to parse the WSDL.
INFO: Invoking wsimport with https://localhost:8181/TestService/Test?WSDL
SEVERE: wsimport failed

繰り返しますが、これはHTTPS経由でアクセスする場合にのみ発生します。通常のHTTPで問題ありません。ただし、@Statelessアノテーションを削除すると、httpsでも問題なく機能します。@Stateless注釈を追加すると失敗します。

@StatelessJMSキューを使用するため 、注釈が必要です。その場合は注釈が必要です。

以下は私のクラスのコードです:

package service.test;

import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebService;

@Stateless
@WebService
public class Test
{
    public String hello()
    {
        return "Hello!";
    }

    @WebMethod
    public int addNumbers(int number1, int number2)
    {
        return number1 + number2;
    }
}

これまでのところ、Web記述子を利用する必要はありませんでした。私が行ったことはすべて、デフォルトでEclipseで自動的に処理されます。記述子ファイルで何か特別なことをする必要がありますか?もしそうなら、どれですか?

ありがとうございました

4

3 に答える 3

0

これは、私が実際に原因を突き止めたことのない奇妙な問題でした。奇妙なことに、この問題は最終的には必要ないことで解決しました@Stateless

于 2013-01-19T16:42:43.637 に答える
0

Httpsはデフォルトでポート443を使用します。Webサービスがポート8181でリッスンしている場合、httpsリクエストは表示されません。

于 2012-06-28T20:40:34.573 に答える
0

大げさな推測ですが、トラストストアにサーバー証明書の発行者がいますか? それは醜いsslの問題になる可能性があります。( @Stateless がなくても機能するという事実は、私の理論と矛盾していますが)

ただの推測...

于 2012-06-28T20:47:57.583 に答える