Webサービスに存在するメソッドを呼び出す際に問題に直面しています。 wsdlはAXISを使用して作成されました。
Javaコードを使用して起動しようとすると、サービス応答からnull値が取得されます。
コンソールに警告メッセージが出力されています。
必要なクラス(javax.activation.DataHandlerおよびjavax.mail.internet.MimeMultipart)が見つかりません。添付ファイルのサポートは無効です。
これを解決するために、ワークスペースのビルドパスにactivation.jarとmail.jarを追加し、サーバーを再起動しました。
編集:
WSDLを右クリック==>クライアントを生成
次に、プロキシクラスを取得し、それを使用してサービスメソッドを呼び出すためにこれを作成しました。
public class CallingWebService1 {
public static void main(String[] args) throws Exception {
WebService1Proxy proxy1 = new WebService1Proxy();
proxy1.setEndpoint("http://localhost:8045/WebService1/services/WebService1");
EmployeeDetails details = proxy1.getDetails();
System.out.println("Employee Id: " + details.getEmpId());
System.out.println("Employee Name: " + details.getEmpName());
System.out.println("Dept Id: " + details.getDeptId());
System.out.println("Dept Name" + details.getDeptName());
System.out.println("Age: " + details.getAge());
}
しかし、それでも問題は解決しません:(
詳細:
GetDetails()メソッドは、Oracle DBから一部のレコードをフェッチするDB操作を実行しています。 DB操作を実行するには、class12.jarが使用されます。私がやっている方法でサービスメソッドを呼び出すことに関係がありますか?
Javax.activation.DataHandlerの問題を修正するには、クラスパスに JavaBeans Activation Framework activation.jarを追加する必要があります。
Javax.mail.internet.mimeMultipartの問題を修正するには、クラスパスに Java Mail API mail.jarを追加する必要があります。
コンソールに出力される警告メッセージは、上記のjarがクラスパスにないことを示しています。
この問題を修正するには、1つのjar(mail.jar)で十分ですのみです。このjarはクラスパスに存在する必要があります。
残念ながら、wsdlはまだ使用中です:(以下の依存関係を追加することでこの警告を解決できます。
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>