Maven: цель wsgen пропускает javax / jws / WebService - PullRequest
0 голосов
/ 27 января 2019

Я только что создал глупый проект EJB 3.2 с мыльными веб-сервисами JAX-WS, используя maven в Eclipse 2018-09.Компиляция, кажется, работает хорошо, но вещи терпят неудачу, когда цели wsgen и wsimport выполнены.Прежде всего, моя конфигурация запуска сборки Maven:

clean compile jaxws:wsgen install jaxes:wsimport

А вот мой pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>lory-ejb</groupId>
<artifactId>lory-ejb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>lory-ejb</name>

<dependencies>
    <dependency>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.3.6.Final</version>
    </dependency>

    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>42.2.5</version>
    </dependency>

    <dependency>
        <groupId>javax.xml</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.1</version>
    </dependency>

    <dependency>
        <groupId>javax.xml</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>2.1</version>
    </dependency>

    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>7.0</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-plugin-api</artifactId>
        <version>3.6.0</version>
    </dependency>

    <dependency>
        <groupId>com.sun.xml.ws</groupId>
        <artifactId>jaxws-tools</artifactId>
        <version>2.3.1</version>
        <type>pom</type>
    </dependency>

    <dependency>
        <groupId>org.glassfish.main.javaee-api</groupId>
        <artifactId>javax.jws</artifactId>
        <version>3.1.2.2</version>
    </dependency>

    <dependency>
        <groupId>javax.xml.ws</groupId>
        <artifactId>jaxws-api</artifactId>
        <version>2.3.1</version>
    </dependency>

    <dependency>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.1.1</version>
    </dependency>

    <dependency>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jaxws-maven-plugin</artifactId>
        <version>2.5</version>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jaxws-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>generate-wsdl</id>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>wsgen</goal>
                    </goals>
                    <configuration>
                        <sei>org.lory.ejb.core.implementations.TestWorkupsWSImpl</sei>
                        <genWsdl>true</genWsdl>
                    </configuration>
                </execution>
                <execution>
                    <id>generate-stubs</id>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>wsimport</goal>
                    </goals>
                    <configuration>
                        <wsdlDirectory>target/jaxws/wsgen/wsdl</wsdlDirectory>
                        <wsdlFiles>
                            <wsdlFile>TestWorkupsWSImpl.wsdl</wsdlFile>
                        </wsdlFiles>
                        <!-- *** you need the next line to set the wsdlLocation in the generated 
                            stubs *** -->
                        <wsdlLocation>http://localhost:8180/lory-ejb-0.0.1-SNAPSHOT/</wsdlLocation>
                    </configuration>
                </execution>
            </executions>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <executions>
                <execution>
                    <id>package-wsclient-jars</id>
                    <phase>package</phase>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                    <configuration>
                        <classesDirectory>target/jaxws/</classesDirectory>
                        <classifier>wsclient</classifier>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

И это ошибкасообщение, которое я прочитал на консоли:

[INFO] Сканирование проектов ... [ПРЕДУПРЕЖДЕНИЕ] [ПРЕДУПРЕЖДЕНИЕ] При создании эффективной модели для lory-ejb: lory-ejb: jar возникли некоторые проблемы.0.0.1-SNAPSHOT [ПРЕДУПРЕЖДЕНИЕ] 'build.plugins.plugin.version' для org.apache.maven.plugins: отсутствует maven-jar-plugin.@ строка 133, столбец 12 [ПРЕДУПРЕЖДЕНИЕ] 'build.plugins.plugin.version' для org.codehaus.mojo: отсутствует jaxws-maven-plugin.@ строка 99, столбец 12 [ПРЕДУПРЕЖДЕНИЕ] [ПРЕДУПРЕЖДЕНИЕ] Настоятельно рекомендуется устранить эти проблемы, поскольку они угрожают стабильности вашей сборки.[ПРЕДУПРЕЖДЕНИЕ] [ПРЕДУПРЕЖДЕНИЕ] По этой причине будущие версии Maven могут больше не поддерживать создание таких некорректных проектов.[ПРЕДУПРЕЖДЕНИЕ] [ИНФО] [ИНФО] ------------------------- -------------------------- [INFO] Building lory-ejb 0.0.1-SNAPSHOT [INFO] -------------------------------- [баночка] -------------------------------- [ПРЕДУПРЕЖДЕНИЕ] POM для org.jboss: jandex: jar: 2.0.5. Финал недействителен, переходные зависимости (если таковые имеются) будут недоступны, для получения более подробной информации включите ведение журнала отладки [ПРЕДУПРЕЖДЕНИЕ] POM для com.sun.xml.ws: jaxws-tools: jar: 2.2.10 недопустим, переходные зависимости (если таковые имеются) будут недоступны, для получения более подробной информации включите ведение журнала отладки [ПРЕДУПРЕЖДЕНИЕ] Артефакт javax.xml: jaxb-api: jar: 2.1был перемещен в javax.xml.bind: jaxb-api: jar: 2.1 [INFO] [INFO] --- maven-clean-plugin: 2.5: clean (default-clean) @ lory-ejb --- [INFO]Удаление / Users / lory / workspace / lory-ejb / target [INFO] [INFO] --- maven-resources-plugin: 2.6: resources (default-resources) @ lory-ejb --- [ПРЕДУПРЕЖДЕНИЕ] Использование кодировки платформы (UTF-8 на самом деле) копировать отфильтрованные ресурсы, т.е. сборка зависит от платформы![INFO] Копирование 1 ресурса [INFO] [INFO] --- maven-compiler-plugin: 3.8.0: compile (default-compile) @ lory-ejb --- [INFO] Обнаружены изменения - перекомпилируйте модуль![ПРЕДУПРЕЖДЕНИЕ] Кодировка файла не была установлена, используется кодировка платформы UTF-8, т.е. сборка зависит от платформы![INFO] Компиляция 16 исходных файлов в / Users / lory / workspace / lory-ejb / target / classes [INFO] [INFO] --- jaxws-maven-plugin: 2.5: wsgen (default-cli) @ lory-ejb --- [ИНФОРМАЦИЯ] ------------------------------------------------------------------------ [INFO] СБОЙ СТРОИТЕЛЬСТВА [INFO] ------------------------------------------------------------------------ [INFO] Общее время: 3,665 с [INFO] Окончание: 2019-01-27T18: 57: 06 + 01: 00 [INFO] ------------------------------------------------------------------------ [ОШИБКА] Не удалось выполнить цель org.codehaus.mojo: jaxws-maven-plugin: 2.5: wsgen (default-cli) в проекте lory-ejb: Выполнение default-cli цели org.codehaus.mojo: jaxws-maven-plugin: 2.5: сбой wsgen: во время выполнения org.codehaus.mojo отсутствует требуемый класс: 2.5: wsgen: javax / jws / WebService [ОШИБКА] ----------------------------------------------------- [ОШИБКА] realm = плагин> org.codehaus.mojo: jaxws-maven-plugin: 2.5 [ОШИБКА] стратегии = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy [ERROR] urls [0] = файл: /Users/lory/.m2/repository/org/codehaus/mojo/jaxws-maven-plugin/2.5/jaxws-maven-plugin-2.5.jar [ERROR] urls [1] = файл: /Users/lory/.m2/repository/com/sun/xml/ws/jaxws-tools/2.2.10/jaxws-tools-2.2.10.jar [ОШИБКА] urls [2] = файл: /Users / lory / .m2 / репозиторий / org / sonatype / sisu / sisu-inject-bean / 1.4.2 / sisu-inject-bean-1.4.2.jar [ОШИБКА] urls [3] = файл: / Users / lory/.m2/repository/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar [ОШИБКА] urls [4] = файл: /Users/lory/.m2/repository/org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar[ОШИБКА] urls [5] = файл: /Users/lory/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar [ОШИБКА] urls [6] = файл: /Users / lory / .m2 / репозиторий / org / codehaus / plexus / plexus-component-annotations / 1.5.5 / plexus-component-annotations-1.5.5.jar [ОШИБКА] urls [7] = файл: / Users / lory/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar [ОШИБКА] urls [8] = файл: /Users/lory/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar [ОШИБКА] urls [9] = файл: /Users/lory/.m2/repository/org/codehaus/plexus/plexus-utils/3.0.22 / plexus-utils-3.0.22.jar [ОШИБКА] Количество иностранных импортов: 1 [ОШИБКА] импорт: запись [импорт из области ClassRealm [maven.api, parent: null]] [ОШИБКА] [ОШИБКА] -----------------------------------------------------: javax.jws.WebService [ОШИБКА] -> [Справка 1] [ОШИБКА] [ОШИБКА] Чтобы просмотреть полную трассировку стека ошибок, перезапустите Maven с ключом -e.[ОШИБКА] Перезапустите Maven, используя ключ -X, чтобы включить полное ведение журнала отладки.[ОШИБКА] [ОШИБКА] Для получения дополнительной информации об ошибках и возможных решениях, пожалуйста, прочитайте следующие статьи: [ОШИБКА] [Помощь 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException

Я не могу понять, где проблема, как яувидеть этот класс в Maven Dependencies в проекте.Я новичок в Maven, так как по работе я привык к сборке Ivy + Ant.

Может быть, я написал слишком много или слишком мало зависимостей?И я не знаю, почему он обвиняет его в том, что он не может найти ни класс конечной точки, ни файл wsdl, поскольку они все еще должны выполняться после компиляции.

Кто-нибудь, пожалуйста, объясните мне?Thnaks.

...