私はまだJavaWebサービスに慣れていないことを考えており、克服できない本当の障害にぶつかっています。
Webサービスをデプロイし、@Stateless
https経由でその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
注釈を追加すると失敗します。
@Stateless
JMSキューを使用するため 、注釈が必要です。その場合は注釈が必要です。
以下は私のクラスのコードです:
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で自動的に処理されます。記述子ファイルで何か特別なことをする必要がありますか?もしそうなら、どれですか?
ありがとうございました