Не удалось найти необходимые классы (javax.activation.DataHandler и javax.mail.internet.MimeMultipart). Поддержка вложений отключена
Я сталкиваюсь с проблемами при вызове метода, присутствующего в веб-службе. Wsdl был создан с использованием AXIS.
Когда я пытаюсь вызвать его с помощью моего java-кода, я получаю нулевые значения из ответа службы.
Я получаю предупреждение, которое печатается в моей консоли:
Невозможно найти необходимые классы (javax.activation.DataHandler и javax.mail.internet.MimeMultipart). Поддержка прикрепления отключена.
При попытке решить эту проблему я добавил activ.jar и mail.jar в свой путь сборки рабочей среды, перезапустил сервер.
EDIT:
Щелкните правой кнопкой мыши на WSDL == > Generate CLient
Затем я получил прокси-класс, используя его, я написал это, чтобы вызвать метод службы:
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. Для выполнения операции БД используется класс 12.jar. Имеет ли это какое-то отношение к вызову метода службы, как я это делаю?
Ответы
Ответ 1
Чтобы исправить проблему javax.activation.DataHandler, вы должны добавить JavaBeans Activation Framework activation.jar в свой путь к классам.
Чтобы исправить проблему javax.mail.internet.mimeMultipart, вы должны добавить Java Mail API mail.jar в свой путь к классам.
Предупреждающие сообщения, напечатанные на консоли, показывают, что указанные выше баны не находятся в пути к классам.
Ответ 2
Для устранения этой проблемы достаточно одной банки (mail.jar). Эта банка должна присутствовать в вашем пути к классу.
Ответ 3
К сожалению, 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>