有人可以帮我解决我的问题吗?

我有两个Maven项目A和B。我希望项目A包含我的所有模型类,并且在项目B中,我正在使用Spring WS创建一个合同优先的Web服务。 因此,在项目B中,我使用maven-jaxb2-plugin从我的模式中生成类。 碰巧我的Web服务项目(项目A)中的生成类与我的模型项目(项目A)中的生成类相同(没有XML批注)。

因为我不想在我的Web服务项目(项目B)中有重复的类,所以我决定使该项目取决于模型项目(项目A),而我接下来要的是不再为Webservice项目生成类但是到模型项目(项目A)。

您是否认为没有其他方法可以做到这一点? 有人可以帮我这样做吗?

项目A

package project.a;

public class Client {
  //...
}


项目B

package project.b;

public class Compte {
  //This class manipulates a Client object
  //...
}


JAXB2 Maven插件

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>jaxb2-maven-plugin</artifactId>
  <version>1.6</version>
  <executions>
    <execution>
      <id>xjc</id>
      <goals>
        <goal>xjc</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <outputDirectory>src/main/java</outputDirectory>
    <packageName>project.a</packageName>
    <schemaDirectory>src/main/webapp/WEB-INF/schemas</schemaDirectory>
    <clearOutputDir>false</clearOutputDir>
  </configuration>
<plugin>


架构

<element name="client">
  <complexType>
    <sequence>
      <!--  -->
    </sequence>
  </complexType>
</element>

项目B弹簧豆配置

<bean class="org.springframework.ws.client.core.WebServiceTemplate">
  <property name="marshaller" ref="marshaller"/>
  <property name="unmarshaller" ref="marshaller"/>
  <property name="defaultUri" value="http://localhost:8080/project/" />
</bean>
<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
  <property name="contextPath" value="project.a"/>
</bean>

===============>>#1 票数:0

您不必再次重新创建模型类。 只需将它们放入Project A,然后将这些bean导入到Project B中,如下所示:

    <import resource="classpath:projectABeanDefinitionFile.xml" />

假设您要在Compte类上实现/转到@XmlRootElement(否则建议通过类似此处的教程),然后将项目B文件更改为:

    <bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
      <property name="classesToBeBound" value="project.b.Compte"/>
    </bean>

  ask by Papa Cheikh Cisse translate from so

未解决问题?本站智能推荐: