web-dev-qa-db-ja.com

必要なクラス(javax.activation.DataHandlerおよびjavax.mail.internet.MimeMultipart)が見つかりません。添付ファイルのサポートは無効です

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が使用されます。私がやっている方法でサービスメソッドを呼び出すことに関係がありますか?

39
user182944

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

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

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

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

22
MAA

残念ながら、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>
0
Gostil