java - 是否可以使用 CXF 生成可序列化的类?

标签 java serialization cxf

我正在使用 Apache CXF 从 WSDL 文件生成类,但它们没有实现将对象放入 JMS 队列所需的可序列化。是否可以这样做,或者我是否必须将生成的类转换为我自己的类并发送它们?

最佳答案

我自己找到了解决方案,所以如果将来有人需要它,就在这里:

1。将此插件添加到 pom.xml

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>${cxf.version}</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <sourceRoot>${basedir}/src/main/java</sourceRoot>
                <wsdlRoot>${basedir}/src/main/resources</wsdlRoot>
                <includes>
                    <include>*Service.wsdl</include>
                </includes>
                <wsdlOptions>
                    <wsdlOption>
                        <wsdl>${basedir}/src/main/resources/your_wsdl.wsdl</wsdl>
                        <extraargs>
                            <extraarg>-client</extraarg>
                            <extraarg>-impl</extraarg>
                            <extraarg>-server</extraarg>
                            <extraarg>-verbose</extraarg>
                            <extraarg>-validate</extraarg>
                        </extraargs>
                        <bindingFiles>
                            <bindingFile>${basedir}/src/main/resources/binding.xml</bindingFile>
                        </bindingFiles>
                    </wsdlOption>
                </wsdlOptions>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>

2。编写自定义绑定(bind) (binding.xml)

<?xml version="1.0" encoding="UTF-8"?>
<jaxws:bindings wsdlLocation="Send.wsdl"
    xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    <jaxws:bindings
        node="wsdl:definitions/wsdl:types/xs:schema[@targetNamespace='http://wsdl/SendService.wsdl']">
        <jxb:globalBindings xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
            xmlns:xs="http://www.w3.org/2001/XMLSchema">
            <jxb:serializable uid="11082011"/>
        </jxb:globalBindings>
    </jaxws:bindings>
</jaxws:bindings>

3.运行“mvn generate-sources”

关于java - 是否可以使用 CXF 生成可序列化的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7009586/

相关文章:

java - 在按键上删除 JList 项目的异常

c# - 如何正确序列化自动生成的 WCF 类型

web-services - 如何使用 oAuth 2.0 保护 apache cxf webservice(jax-ws)

java.lang.NoClassDefFoundError : org/apache/xerces/jaxp/datatype/XMLGregorianCalendarImpl weblogic 10. 3.6

java - 根据单词出现频率对列表进行排序

Java HtmlUnit Ajax 调用永远不会在 HtmlPage 中呈现

java - 如何在maven项目中将javascript文件外部添加到JSP?

php - 序列化器 Symfony 上的回调

php将二维数组插入mysql

java - RESTful 服务 - 避免堆栈跟踪到客户端