标签: wsdl2java

Apache Axis WSDL2Java错误 - 缺少<soap:fault>元素

我们正在将第三方SOAP Web服务集成到我们的应用程序中.WSDL与SOAPUI工具一起使用,其中样本请求和响应工作正常.

当我们尝试与apache Axis 1.3集成时,我们尝试使用WSDL的WSDL2JAVA.我们收到了以下错误消息

java.io.IOException的:错误:缺少元件InFault已 "serviceFault" 在操作中 "serviceFault",在org.apache.axis在org.apache.axis.wsdl.symbolTable.SymbolTable.faultsFromSOAPFault(SymbolTable.java:2858)结合saveRegistration .wsdl.symbolTable.SymbolTable.populateBindings(SymbolTable.java:2549)在org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:744)在org.apache.axis.wsdl.symbolTable.SymbolTable.add (SymbolTable.java:543)在org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:518)在org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:495)在java.lang.Thread.run上的org.apache.axis.wsdl.gen.Parser $ WSDLRunnable.run(Parser.java:361)(未知来源)

有人已经遇到过这个问题并解决了吗

wsdl2java soapfault

5
推荐指数
1
解决办法
2万
查看次数

是否可以使用maven中的apache cxf生成webservices客户端代码到特殊包?

我正在尝试生成webservices客户端,一旦我在运行中构建我的项目..它目前这样做,但把它放在基于WS的命名空间命名的包中..所以我们假设名称空间是google.com,生成文件将在com.google中..

<plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>2.2.10</version>
            <executions>
                <execution>
                    <id>generate-sources</id>
                    <phase>generate-sources</phase>
                    <configuration>
                        <sourceRoot>${basedir}/src/main/java/</sourceRoot>
                        <wsdlOptions>
                            <wsdlOption>
                                <wsdl>http://localhost:8080/ProjectName/ProjectWS?wsdl</wsdl>
                            </wsdlOption>
                        </wsdlOptions>
                    </configuration>
                    <goals>
                        <goal>wsdl2java</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

我想生成不同包的文件..让我们称之为comWS.gooleClient

有可能吗?

谢谢

java maven-2 cxf wsdl2java jax-ws

5
推荐指数
2
解决办法
4227
查看次数

CXF:如何使用JAXB外部绑定文件更改WSDL导入的XML Schema的包?

我有一个WSDL文件,它导入了几个XML Schema,每个都有相同的命名空间(让我们称之为A).我正在尝试使用JAXB外部绑定文件来更改这些模式的生成包名称(比如说B).这是一个例子:

我有一个POM文件,其中包含从WSDL生成代码的配置(使用cxf-codegen-plugin).

我的WSDL:

<definitions ...>
    <types>
         <xsd:schema elementFormDefault="qualified" targetNamespace="C">
             <xsd:import namespace="A" schemaLocation="SCHEMA_REF"/>
             <xsd:import namespace="A" schemaLocation="SCHEMA_REF"/>
             ...
         </xsd:schema>
    </types>
    ...
</definitions>
Run Code Online (Sandbox Code Playgroud)

这是我的实际绑定文件根本不起作用,它似乎根本没有应用(没有错误消息...).

<jaxws:bindings wsdlLocation="WSDL_LOCATION" xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" jaxb:version="2.0">
    <jaxws:bindings node="wsdl:definitions/wsdl:types/xs:schema[@targetNamespace='C']/xs:import[@namespace='A']">.
        <jaxb:schemaBindings>
            <jaxb:package name="B" />
        </jaxb:schemaBindings>
    </jaxws:bindings>
</jaxws:bindings>
Run Code Online (Sandbox Code Playgroud)

因为我在生成中没有任何错误消息,可能是因为用于访问导入模式的XPath表达式不好...

你们有什么线索吗?我有点被困在这里......

提前感谢您的投入!

maven-2 wsdl2java jaxb

5
推荐指数
1
解决办法
4359
查看次数

从WSDL生成代码会导致异常

我正在使用Axis2 1.5.1(wsdl2java)从给定的WSDL文件生成代码(客户端存根).
Web服务由外部应用程序提供.

<?xml version="1.0" encoding="utf-8"?>  
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"  
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility- 1.0.xsd"  
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"   
xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"             
xmlns:tns="http://tempuri.org/"   
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"     
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" 
xmlns:i0="http://schemas.microsoft.com/ws/2005/02/mex/bindings" 
xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"  
xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" 
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" 
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"   
xmlns:wsa10="http://www.w3.org/2005/08/addressing"   
xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"   
name="service" targetNamespace="http://tempuri.org/"   
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">  
<wsdl:types>  
<xsd:schema targetNamespace="http://tempuri.org/Imports">  
<xsd:include schemaLocation="SampleApp.App.ApplicationManager.RemoteApplication0.xsd" />  
<xsd:include schemaLocation="SampleApp.App.ApplicationManager.RemoteApplication1.xsd" />  
<xsd:include schemaLocation="SampleApp.App.ApplicationManager.RemoteApplication2.xsd" />  
<xsd:include schemaLocation="SampleApp.App.ApplicationManager.RemoteApplication3.xsd" />  
</xsd:schema>  
</wsdl:types>  
...  
</wsdl:definition>  
Run Code Online (Sandbox Code Playgroud)

RemoteApplication0.xsd的内容如下:

<?xml version="1.0" encoding="utf-8"?>  
<xs:schema xmlns:tns="http://schemas.microsoft.com/Message" 
elementFormDefault="qualified"  
targetNamespace="http://schemas.microsoft.com/Message"  
xmlns:xs="http://www.w3.org/2001/XMLSchema">  
<xs:complexType name="MessageBody">  
<xs:sequence>  
<xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" />  
</xs:sequence>  
</xs:complexType>  
</xs:schema>  
Run Code Online (Sandbox Code Playgroud)

命令行:

wsdl2java -ss -g -d adb -or -p com.sampleapp.ws.generated.client -uri SampleRemoteProcess.wsdl  
Run Code Online (Sandbox Code Playgroud)

生成过程会导致异常.
堆栈跟踪:

Using AXIS2_HOME: …
Run Code Online (Sandbox Code Playgroud)

java wsdl axis2 code-generation wsdl2java

5
推荐指数
1
解决办法
1万
查看次数

旧版Commons-HttpClient在Axis2 Web服务客户端中提供IOException

我正在为axis2 Web服务使用wsdl2java生成的Web服务客户端(axis2版本为1.6.1).因此,对于http连接,使用旧版本的commons-httpclient 3.1.在对我的Web服务客户端进行一些负载测试时.在某些情况下,我遇到了这个例外

org.apache.axis2.AxisFault: org.apache.axiom.ext.io.StreamCopyException: Error reading from source
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
at com.ardic.arcsp.carbon.registry.ws.stub.WSStorageServiceStub.fromOM(WSStorageServiceStub.java:16706)
at com.ardic.arcsp.carbon.registry.ws.stub.WSStorageServiceStub.wSgetById(WSStorageServiceStub.java:6659)
at com.ardic.arcsp.update.wsclient.WSStorageServiceClient.getResourceById(WSStorageServiceClient.java:177)
at com.ardic.arcsp.update.wsclient.OTAUpdateTestServlet.downloadResource(OTAUpdateTestServlet.java:162)
at com.ardic.arcsp.update.wsclient.OTAUpdateTestServlet.doGet(OTAUpdateTestServlet.java:91)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:273)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:270)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:305)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:298)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:57)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.wso2.carbon.server.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:154)
at org.wso2.carbon.server.TomcatServer$1.invoke(TomcatServer.java:254)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:396) …
Run Code Online (Sandbox Code Playgroud)

axis2 wsdl2java wso2 apache-commons-httpclient

5
推荐指数
1
解决办法
2898
查看次数

wsdl2java客户端存根仅用于wsdl支持的某些操作?

使用Axis2 Wsdl2Java:有没有办法从wsdl生成相关的客户端代码,但只能用于wsdl中受支持的操作的子集.

也就是说,如果wsdl说过一个有争议的操作,那么只能为一个或两个感兴趣的操作生成客户端存根代码?

我已经为客户WSDL生成了客户端存根,并且生成的存根和支持代码对于我的目的来说太大了> 75MB.

我使用了带有-U选项的Axis2 Wsdl2Java来解压缩绑定,并且由于在尝试使用ADB时出现解析错误,我还必须使用XML bean绑定.

谢谢,

由于我没有收到太多关于此的反馈:我将编辑这个来重述问题,(因为我真的不关心解决方案是如何得出的).

基本上我真正的问题是我正在生成一个相当大的WAR文件,该文件在Tomcat7.0中使用客户端并且它消耗了大量内存.

也许,我不需要/不应该在WAR中捆绑所有生成的类.但在我看来,这些是Stub生成的不可或缺的部分,我相信有一个更优雅的解决方案,而不是我手动挑选出来的东西?

所以我想以另一种方式重述问题:Axis2正在生成一个非常大的WAR文件,它消耗了大量的Tomcat资源.如何缩小此WAR以使其更小/"更轻量级"WAR.

谢谢,

wsdl axis2 wsdl2java xmlbeans

5
推荐指数
1
解决办法
1173
查看次数

Maven wsdl2java <wsdlLocation>标记

我在maven项目中使用wsdl2java来生成一些工件.我没有从头开始,而是继承了我前任的工作.我有一个与我的pom文件中的标签相关的问题.

<plugin>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-codegen-plugin</artifactId>
  <version>2.1.4</version>
  <executions>
    <execution>
      <id>generate-sources</id>
      <phase>generate-sources</phase>
      <configuration>
        <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
        <wsdlOptions>
          <wsdlOption>
            <wsdlLocation>http://localhost:8080/sunrise/sunrise?wsdl</wsdlLocation>
            <wsdl>${basedir}/src/main/webapp/WEB-INF/wsdl/sunrise/sunrise.wsdl</wsdl>
          </wsdlOption>
        </wsdlOptions>
      </configuration>
      <goals>
        <goal>wsdl2java</goal>
      </goals>
    </execution>
  </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

我特别感兴趣的是内心<wsdlOptions>.<wsdlLocation>和之间有什么区别<wsdl>?哪一个用于生成工件?

java wsdl artifacts wsdl2java maven

5
推荐指数
1
解决办法
5503
查看次数

使用JAXB在SOAP上传递HashMap <String,Object>

我试图通过SOAP传递Hashmap.我正在使用CXF wsdl2java来创建我的架构.我已经为我的HashMap创建了一个包装类,因为Hashmap本身不能通过该行传递.

然后我创建了适配器来将Hashmap变形为我的wsdl的已知类型,但是当我的wsdl被创建时,它会添加一些不需要的抽象地图.以下是代码:

这是我的HashMap包装类

@XmlRootElement(name = "testTO")
public class TestTO {

    private HashMap<String, Object> mapTest;

    public TestTO(){
        this.mapTest = new HashMap<String, Object>();
    }

    @XmlJavaTypeAdapter(MapAdapter.class)
    public HashMap<String, Object> getMapTest() {
        return mapTest;
    }

    public void setMapTest(HashMap<String, Object> mapTest) {
        this.mapTest = mapTest;
    }

}
Run Code Online (Sandbox Code Playgroud)

这是MyMap类,其中是已知的模式类型

@XmlJavaTypeAdapter(MapAdapter.class)
public class MyMap extends HashMap<String, Object>{
    public final List<Entry> entryList = new ArrayList<Entry>();
}
Run Code Online (Sandbox Code Playgroud)

这是Entry List,其中包含上面的列表:

public class Entry {

    @XmlAttribute
    public String key;

    @XmlElements({
            @XmlElement(name = "byte", type = byte.class),
            @XmlElement(name = "short", type …
Run Code Online (Sandbox Code Playgroud)

java schema soap wsdl2java jaxb

5
推荐指数
2
解决办法
9558
查看次数

maven pom.xml抱怨执行无法解析依赖关系但功能正常

我有一个使用WSDL服务的Java项目.pom给出了一个错误(所以我的项目中有红色X)但是所有内容都构建并正确运行.我很难过,任何想法都是适当的.

这是麻烦制造者:

< !-- WSDL stub generation -- >
<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId >cxf-codegen-plugin</artifactId>
    <version>${cxf-codegen-plugin.version}</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <sourceRoot>${basedir}/target/generated/src/main/java</sourceRoot>
                <wsdlOptions>
                    <wsdlOption>
                        <wsdl>${basedir}/src/wsdl/Service.wsdl</wsdl>
                    </wsdlOption>
                </wsdlOptions>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

这是我从上面的执行元素得到的错误:

执行生成目标org.apache.cxf:cxf-codegen-plugin:2.7.2:wsdl2java失败:插件org.apache.cxf:cxf-codegen-plugin:2.7.2或其中一个依赖项无法解析:无法收集org.apache.cxf的依赖项:cxf-codegen-plugin:jar:2.7.2()(org.apache.cxf:cxf-codegen-plugin:2.7.2:wsdl2java:generate-sources:generate-源)

(对不起'<'和'>'周围的空格.我是SO的新手,还不能张贴图片.

java eclipse wsdl2java pom.xml maven

5
推荐指数
1
解决办法
840
查看次数

使用自定义jaxb绑定来获取xs:datetime到Joda时间但获取XMLGregorianCalender

Java 1.7 Spring 3.1.1 with Spring-WS 2.1.1 Joda Hibernate 3.6 MySQL 5.0.57 Maven 3 Tomcat 7 Eclipse 3.7

已部署Web服务并部署Web客户端,Web服务和Web客户端相互通信.

但就像在老式的视频游戏中一样,杀死一批龙只会产生另一批龙.

现在它是整个Joda Datetime xs:dateTime jaxb绑定的东西,它向我喷火.

谷歌搜索提出了许多我试图遵循的解决方案.

代表实体

@Entity
@Table(name="form_templates", catalog="mycomp")
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class FormTemplate implements java.io.Serializable
{
    private static final long serialVersionUID = 8533964268513480152L;
    ....

    @Column(name="revision_datetime")
    @Type(type="org.joda.time.contrib.hibernate.PersistentDateTime")
    @XmlElement(name="revisionTimestamp")
    @XmlJavaTypeAdapter(JodaDateTimeAdapter.class)
    @XmlSchemaType(name="dateTime")
    DateTime revisionTimestamp;
    .... 
}
Run Code Online (Sandbox Code Playgroud)

JodaDateTimeAdapter

@XmlTransient
public class JodaDateTimeAdapter extends XmlAdapter<String, DateTime>
{
    private static final DateTimeFormatter XML_DATE_FORMAT =      ISODateTimeFormat.dateTimeNoMillis();  
    private static final DateTimeFormatter XML_DATE_TIME_FORMAT = ISODateTimeFormat.localDateOptionalTimeParser();  
    private static final …
Run Code Online (Sandbox Code Playgroud)

web-services wsdl2java jaxb jodatime xmladapter

5
推荐指数
1
解决办法
6436
查看次数