Поставлен в тупик на конфигурации wsgen + maven - PullRequest
3 голосов
/ 26 января 2012

Я потратил целый день на поиски решения, как заставить wsgen + maven генерировать артефакты из моего аннотированного класса безрезультатно, всегда заканчиваясь ошибкой «Не удалось найти файл класса».

Мой pom.xml выглядит следующим образом:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jaxws-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>wsgen</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <sei>fr.extelia.ibabi.ws.convergence.impl.ServiceWSConvergence</sei>
                <keep>true</keep>
                <verbose>true</verbose>
                <sourceDestDir>target/generated-sources/artifacts</sourceDestDir>
                <packageName>fr.extelia.ibabi.ws.convergence.stub</packageName>
            </configuration>
            <dependencies>
            <dependency>
                <groupId>javax.jws</groupId>
                <artifactId>jsr181-api</artifactId>
                <version>1.0-MR1</version>
            </dependency>
                <dependency>
                    <groupId>com.sun.xml.ws</groupId>
                    <artifactId>jaxws-rt</artifactId>
                    <version>2.2.5</version>
                </dependency>
            </dependencies>
        </plugin>

Кроме того, я попытался сгенерировать артефакты в командной строке, но безрезультатный результат:

wsgen -cp C:\workspace\ibabi\trunk\ibabi-ws\ibabi-ws-service\target\classes -keep -s C:/workspace/ibabi/trunk/ibabi-ws/ibabi-ws-service/target/generated-sources/artifacts fr.extelia.ibabi.ws.convergence.impl.ServiceWSConvergence

PS: я использую папку "classes" в качестве местоположения класса конечной точки в командной строке. Использование папки src просто возвращает ошибку с описанием ввода командной строки.

Любая помощь по этому вопросу будет очень признателен

Спасибо

Ответы [ 2 ]

6 голосов
/ 05 февраля 2012
  1. Использование командной строки wsgen

    wsgen -cp C:\workspace\ibabi\trunk\ibabi-ws\ibabi-ws-service\target\classes 
    -keep -s C:/workspace/ibabi/trunk/ibabi-ws/ibabi-ws-service/target/generated-       
    sources/artifacts 
    fr.extelia.ibabi.ws.convergence.impl.ServiceWSConvergence
    

    При запуске команды wsgen сначала убедитесь, что исходная папка имеет значение C: / workspace / ibabi / trunk / ibabi-ws / ibabi-ws-service / target / generate-sources / artifacts и файлы классов генерируются внутри C: \ рабочее пространство \ ibabi \ ствол \ ibabi-WS \ ibabi-WS-сервис \ целевых \ классы . Перед запуском wsgen должен быть внутри файла файл байт-кода fr.extelia.ibabi.ws.convergence.impl.ServiceWSConvergence *1011* C: \ рабочее пространство \ ibabi \ ствол \ ibabi-WS \ ibabi-WS-сервис \ целевых \ классы

  2. Использование Maven

    Используйте зависимость от org.jvnet.jax-ws-commons вместо org.codehaus.mojo. Плагин org.codehaus.mojo был перенесен в org.jvnet.jax-ws-commons.
    См. Различные допустимые параметры для maven wsgen из http://jax -ws-commons.java.net / jaxws-maven-plugin / wsgen-mojo.html Если проект основан на структуре проекта maven по умолчанию, будет работать следующий фрагмент кода.

    <build>
      <pluginManagement>
        <plugins>              
            <plugin>
                <groupId>org.jvnet.jax-ws-commons</groupId>
                <artifactId>jaxws-maven-plugin</artifactId>
                <version>2.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>wsgen</goal>
                        </goals>
                    </execution>
                </executions>
    
                <configuration>
                    <sei>fr.extelia.ibabi.ws.convergence.impl.ServiceWSConvergence</sei>
                    <sourceDestDir>src/main/java</sourceDestDir>
                </configuration>
    
                <dependencies>
                    <dependency>
                        <groupId>com.sun.xml.ws</groupId>
                        <artifactId>jaxws-tools</artifactId>
                        <version>2.2.5</version>
                    </dependency>
                </dependencies>
              </plugin>
          </plugins>
        </pluginManagement>
    </build>
    

Если проблема не устранена, опубликуйте структуру своего проекта.

1 голос
/ 12 сентября 2013

Вам не нужно определять цель, но сначала нужно скомпилировать класс службы impl. mvn compile

...