Невозможно создать фабрику соединений SOAP: поставщик com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnectionFactory не найден - PullRequest
0 голосов
/ 12 ноября 2018

В настоящее время я разрабатываю серверное приложение Java, которое подключается к другому серверу с помощью SOAP, получает некоторые данные и сохраняет их в БД. Я работаю над проектом Eclipse Photon, Maven.

Мой клиент Soap работал отлично до сих пор. Для моих функций хранения базы данных мне понадобился драйвер JDBC SQL Server. Но Eclipse сказал мне, что драйвер был скомпилирован с более свежей версией Java.

Я был на Java 8, я обновил до Java 10, и теперь драйвер работает нормально, НО мой SOAP-клиент больше не работает! Eclipse не распознает import javax.xml.soap , который я использую для своего мыла.

Поэтому я добавил в свой pom.xml некоторые зависимости, например:

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.2.11</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-core</artifactId>
    <version>2.2.11</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>2.2.11</version>
</dependency>
<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.xml.soap/javax.xml.soap-api -->
<dependency>
    <groupId>javax.xml.soap</groupId>
    <artifactId>javax.xml.soap-api</artifactId>
    <version>1.4.0</version>
</dependency>

Похоже, что импорт Javax снова был распознан Eclipse, поэтому я скомпилировал свой проект с Tomcar, чтобы запустить его, и после того, как я попробовал мой клиент Soap, он выдает мне следующую ошибку:

java.lang.Exception: не удалось создать фабрику соединений SOAP: поставщик com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnectionFactory не найден

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Добавление этой зависимости в мое POM устранило проблему:

    <dependency>
        <groupId>com.sun.xml.messaging.saaj</groupId>
        <artifactId>saaj-impl</artifactId>
        <version>1.4.0</version>
    </dependency>

Также исправляет эту ошибку: javax.xml.soap.SOAPException: Unable to create message factory for SOAP: Unable to create SAAJ meta-factory: Provider com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl not found

0 голосов
/ 14 ноября 2018

У меня был такой же сценарий, вот как я его исправил:

Я скачал банку saaj-impl и зависимость mimepull https://jar -download.com / artifacts / com.sun.xml.messaging.saaj / saaj-impl / 1.3.6 / source-code

Я импортировал эти две банки в intelliJ как зависимость через Файл -> Структура проекта -> Модули -> Зависимости

Затем я добавил maven зависимости в pom.xml:

<!-- saaj-impl-1.3.16.jar maven dependency -->
<dependency>
    <groupId>com.sun.xml.messaging.saaj</groupId>
    <artifactId>saaj-impl</artifactId>
    <version>LATEST</version>
    <systemPath>${project.basedir}/(from project folder to jar file).../saaj-impl- 
    1.3.16.jar</systemPath>
    <scope>system</scope>
</dependency>

<!-- mimepull-1.7.jar maven dependency -->
<dependency>
    <groupId>org.jvnet.mimepull</groupId>
    <artifactId>mimepull</artifactId>
    <version>LATEST</version>
    <systemPath>${project.basedir}/(from project folder to jar file).../mimepull- 
    1.7.jar</systemPath>
    <scope>system</scope>
</dependency>

После закрытия проекта и повторного открытия я перестал получать сообщение об ошибке в классе пропавшего класса soapconnectionfactory!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...