43

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()メソッドは、OracleDBからいくつかのレコードをフェッチするDB操作を実行しています。DB操作の実行には、class12.jarが使用されます。私のやり方でサービスメソッドを呼び出すことと関係がありますか?

4

3 に答える 3

45

javax.activation.DataHandlerの問題を修正するには、クラスパスにJavaBeans ActivationFrameworkactivation.jarを追加する必要があります。

javax.mail.internet.mimeMultipartの問題を修正するには、クラスパスにJava MailAPImail.jarを追加する必要があります。

コンソールに出力される警告メッセージは、上記のjarファイルがクラスパスにないことを示しています。

于 2012-09-01T11:06:27.327 に答える
25

この問題を解決するには、1つのjar(mail.jar)だけで十分です。このjarは、クラスパスに存在する必要があります。

于 2013-12-08T05:46:51.097 に答える
5

残念ながら、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>
于 2019-05-15T06:18:58.253 に答える