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

我有两个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

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

2回复

在使用第三方Web服务时如何使用PayloadLoggingInterceptor和SOAPLoggingInterceptor拦截器

在我的应用程序中,我使用了由客户提供的第三方Web服务。 我已经在Spring和Hibernate框架上开发了我的应用程序,并在一个模块中使用了该第三方Web服务URL。 我已经使用生成了Web服务存根 javab2 - Maven的插件 在我的pom.xml文件中声明
1回复

自定义Java包JAXB wsimport

我正在尝试从wsdl文件生成一个带有maven和jaxb的客户端,里面有两个模式,一些具有相同名称的元素来自不同的模式 当我尝试执行编译时,我收到下一个错误: WSDL模式 : 我尝试重命名产生错误的元素,但然后我的spring客户端收到正确的SOAP消息,但它没有正确填充
1回复

javax.xml.bind.JAXBException:不包含ObjectFactory.class或jaxb.in​​dex

我有一个Java Spring Web应用程序,需要用作SOAP客户端。 我正在使用Maven,并且具有一个包含自定义代码的主模块(WAR)和一个具有WSDL(我有两个WSDL)生成的类的子模块(JAR依赖项)。 如您在标题中所见,当我运行该应用程序时,发生了错误 这是主模块
1回复

无法封送类型“ java.lang.Integer”作为元素,因为它缺少@XmlRootElement批注

我的设定... 我们的第三方合作伙伴发布了我们需要调用的SOAP Web服务。 遵循spring.io的“ 使用SOAP Web服务 ”指南,我已经使用spring-ws构建了一个Web服务客户端。 Maven成功构建了客户端。 意思是,如果我只运行clean instal
1回复

如何配置Spring-WS以使用JAXB Marshaller?

谢谢你对此的帮助到目前为止,我正在更新问题,因为我没有显示我需要的所有内容,显示的更改显示。 肥皂输出仍然不是我想要的。 servlet.xml中 我的注释类看起来像什么 端点 考试 并且这个测试通过所以必须正确但肥皂输出添加NS2前缀 这个命名空
2回复

使用spring WebServiceTemplate和Jaxb2Marshaller时的线程安全

我以编程方式将spring WebServiceTemplate用作Web服务客户端,即未实例化spring容器。 我正在使用Jaxb2Marshaller进行封送/拆组。 在我的应用程序中,我创建了一个SaajSoapMessageFactory实例和一个Jaxb2Marshaller实例
1回复

Spring-WS的JAXB标头安全性

我尝试使用JAXB和SpringWS开发Web服务。 但我有一个问题。 我将wss Security放在哪里以及如何创建标题? 这是我的实际代码: 上下文春天客户 这是客户 这是主要的: 我已经创建了Job对象。 但是我不明白我将标头放在哪里。
1回复

使用异常丢失信封标记的Spring Webservice模板

我正在使用Spring webservice模板来使用Web服务。 我正在使用SOAP版本:1.0。 和spring-ws-core版本:2.0.2.RELEASE 当我使用SOAP UI进行检查时,得到了响应(FAULT,但这很好) 这是从SOAP UI中获取的请求/响应:
2回复

Java Spring Web服务客户端故障处理

我编写了一个与UPS Web服务一起使用的Web服务客户端(使用Java Spring和JAXB Marshaller)。 当我发送有效请求时,一切正常。 当我发送无效请求(重量> 150磅)时,UPS Web服务会响应SOAP Fault。 客户端应用程序失败了 显然我的程
5回复

如何用maven创建基于spring的可执行jar?

我有一个基于Maven的Spring-WS客户端项目,我想打包成一个jar。 在eclipse中,一切都运行正常。 当我尝试将其打包为可执行jar时,我得到ClassNotFound异常,因为Spring jar没有包含在我的应用程序jar中。 所以我添加了maven-shade-pl