У меня есть 2 WSDL, а именно UserStore.wsdl и Authorization.wsdl с xmlns:ns="http://service.ws.um.carbon.wso2.org"
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<vmArgs>
<vmArg>-Djavax.xml.accessExternalSchema=all</vmArg>
</vmArgs>
<args>
<arg>-B-XautoNameResolution</arg>
</args>
<wsdlFiles>
<wsdlFile>RemoteAuthorizationManagerService.wsdl</wsdlFile>
</wsdlFiles>
<wsdlDirectory>${basedir}/src/main/wsdl</wsdlDirectory>
<staleFile>${project.build.directory}/jaxws/stale/RemoteAuthorizationManagerService.stale</staleFile>
<wsdlLocation>/META-INF/wsdl/RemoteAuthorizationManagerService.wsdl</wsdlLocation>
</configuration>
<id>wsimport-generate-RemoteAuthorizationManagerService</id>
<phase>generate-sources</phase>
</execution>
<execution>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<vmArgs>
<vmArg>-Djavax.xml.accessExternalSchema=all</vmArg>
</vmArgs>
<args>
<arg>-B-XautoNameResolution</arg>
</args>
<wsdlFiles>
<wsdlFile>RemoteUserStoreManagerService.wsdl</wsdlFile>
</wsdlFiles>
<wsdlDirectory>${basedir}/src/main/wsdl</wsdlDirectory>
<staleFile>${project.build.directory}/jaxws/stale/RemoteUserStoreManagerService.stale</staleFile>
<wsdlLocation>/META-INF/wsdl/RemoteUserStoreManagerService.wsdl</wsdlLocation>
<sourceDestDir>${project.build.directory}/generated-sources/xjc</sourceDestDir>
<compilerArgument>-proc:none</compilerArgument>
</configuration>
<id>wsimport-generate-RemoteUserStoreManagerService</id>
<phase>generate-sources</phase>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>javax.xml</groupId>
<artifactId>webservices-api</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
<configuration>
<sourceDestDir>${project.build.directory}/generated-sources/jaxws-wsimport-wsdl</sourceDestDir>
<xnocompile>true</xnocompile>
<verbose>true</verbose>
<extension>true</extension>
<keep>true</keep>
<catalog>${basedir}/src/jax-ws-catalog.xml</catalog>
<compilerArgument>-proc:none</compilerArgument>
</configuration>
</plugin>
Основная причина, с которой мы сталкиваемся, заключается в том, что классы ObjectFactory генерируются в разных папках XJC и jaxws-wsimport-wsdl [как указано в теге sourceDestDir], но с одним и тем же пакетом, а именно [org.wso2.carbon.um.ws.service.ObjectFactory ] из-за чего компилятор жалуется. Тип ObjectFactory уже определен, и файл JAR не создается.
Также пробовал давать
<compilerArgument>-proc:none</compilerArgument>
что не сработало.
Нам не разрешено изменять WSDL, и нам необходимо решить эту проблему.
Заранее спасибо.
🤔 А знаете ли вы, что...
Java позволяет создавать сетевые приложения с использованием сокетов.
Итак, насколько я понимаю, ваша проблема заключается в том, что вы хотите, чтобы были определены разные пакеты?
Чтобы настроить целевые пакеты с помощью файлов привязки:
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes"?>
<jaxb:bindings
version = "2.1"
xmlns:jaxb = "http://java.sun.com/xml/ns/jaxb"
xmlns:xs = "http://www.w3.org/2001/XMLSchema">
<jaxb:bindings schemaLocation = "a.xsd" node = "//xs:schema">
<jaxb:schemaBindings>
<jaxb:package name = "org.ab.a"/>
</jaxb:schemaBindings>
</jaxb:bindings>
</jaxb:bindings>
Вы также можете использовать
<packageName>
The package in which the source files will be generated.
Type: java.lang.String
Required: No
Похожие вопросы по Stackoverflow:
Настройка пакетов Java JAXB wsimport
Как генерировать классы из wsdl с помощью Maven и wsimport?