标签: wsimport

JAX-WS从jar加载WSDL

我正在编写一个胖客户端,它利用SOAP服务来实现某些功能(错误报告等)

我有JAX-WS工作正常,但默认情况下(至少在netbeans中)它每次初始化服务时从远程服务器获取WSDL.我希望这有助于提供一些版本支持等,但这不是我想要的.

我已将wsdllocationarg 添加到wsimport以将生成的类指向本地资源.以下代码段是App​​licationService.java中WSDL资源的URL加载.

baseUrl = net.example.ApplicationService.class.getResource(".");
url = new URL(baseUrl, "service.wsdl");
Run Code Online (Sandbox Code Playgroud)

我很确定在net/example/resources包中指向存储在jar中的资源应该没有问题,并且jar本身按预期构造.但是服务不会加载...具体来说,当我调用ApplicationService.getPort()时,我得到一个NullPointerException;

这可能吗?还是只是一场疯狂的追逐?

wsdl jar jax-ws wsimport

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

使用JDK工具wsimport从.NET 2.0应用程序生成的WSDL生成Java SOAP Web服务客户端时出现问题

我正在尝试使用JDK 6工具为一些SOAP Web服务生成客户端wsimport.WSDL由.NET 2.0应用程序生成.对于.NET 3.X应用程序,它工作正常.

我跑的时候

wsimport -keep -p mypackage http://myservice?wsdl
Run Code Online (Sandbox Code Playgroud)

它显示了几个错误消息,如下所示:

[错误]具有相同名称"mypackage.SomeClass"的类/接口已在使用中.使用类自定义来解决此冲突.线?的HTTP://为MyService WSDL

当我使用Axis 1.4(使用Eclipse WebTools插件)生成Web服务客户端时.

有人知道我该怎么做才能使用这个wsimport工具吗?我真的不明白"类定制"是什么.

.net java axis web-services wsimport

39
推荐指数
2
解决办法
3万
查看次数

wsimport生成的客户端如何工作?

在此之前,我想让您知道我已经可以连接到Web服务服务器了.我问这个问题是因为我希望深入了解wsimport生成的客户端是如何工作的.根据我的研究,wsimport使用JAXWS.请注意,我不了解JAXWS.

我使用wsimport生成了我的客户端.我使用的WSDL来自Axis2 Web服务,由Axis2自动生成.下面的类是wsimport的结果:

com.datamodel.xsd

  • DataBeanRequest.java
  • DataBeanResponse.java
  • ObjectFactory.java
  • package-info.java

com.service

  • MyWebService.java
  • MyWebServicePortType.java
  • MyMethod.java
  • MyMethodResponse.java
  • ObjectFactory.java
  • package-info.java

使用上面的类,我可以告诉它com.datamodel.xsd包含Web服务服务器使用的bean(不包括ObjectFactorypackage-info).同时,MyMethodMyMethodResponse也用于设置的web服务方法/操作的请求和响应参数豆.

以下是我的问题:(如果你不知道我的一些问题的答案,你真的不必回答所有问题.:)请随时分享你认为我可能会觉得有用的任何信息.)

我是否正确

  • 我的上述假设是否正确?
  • 其他课程的功能是什么?
  • 我检查过MyWebService,它包含一个注释,指的是我用来生成客户端的WSDL的绝对位置.wsdllocation在客户端中指定的相关性是什么?客户如何使用该信息?
  • 我注意到Web服务的实际URL未在生成的任何类中声明.客户如何知道需要连接的位置?
  • 是否对WSDL文件进行了注释,以便客户端可以在连接时读取WSDL文件上的URL?如果是这样,那么是否意味着在必须建立新连接时始终读取WSDL文件?
  • 由于我需要编译我的应用程序并将其安装在不同的服务器上,因此将无效.我可以将其设置为相对路径而不是绝对路径吗?怎么样?(答案:是的,它可以设置为相对路径.该wsimport命令有一个wsdllocation属性,其中wsdllocation可以指定值.)
  • 如果我需要连接到HTTPS,该怎么办?如何设置服务器证书?
  • 当我使用wsimport生成客户端时以及使用Axis2或Apache CXF生成客户端时有什么区别.

java axis2 web-services jax-ws wsimport

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

如何使用Maven和wsimport从wsdl生成类?

当我尝试运行"mvn generate-sources"时,这是我的输出:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building gensourcesfromwsdl 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.104s
[INFO] Finished at: Tue Aug 20 15:41:10 BST 2013
[INFO] Final Memory: 2M/15M
[INFO] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我没有收到任何错误,但没有从wsdl文件生成的java类.

这是我正在运行插件的pom.xml文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>gensourcesfromwsdl</groupId>
    <artifactId>gensourcesfromwsdl</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>jaxws-maven-plugin</artifactId>
                    <version>1.12</version>
                    <executions>
                        <execution> …
Run Code Online (Sandbox Code Playgroud)

wsimport maven

30
推荐指数
3
解决办法
11万
查看次数

摆脱由ant调用的wsimport生成的类中的JAXBElement

我有以下问题:我正在使用wsimport ant任务来创建一个webservice客户端(对于salesforce.com).一切正常,但生成的类都使用这个奇怪的JAXBElement类用于所有bean属性.

例如:

public void setLastName(JAXBElement<String> value) {
    this.lastName = ((JAXBElement<String> ) value);
}

public JAXBElement<String> getCountry() {
    return country;
}
Run Code Online (Sandbox Code Playgroud)

我没有将所有类包装在JAXBElement中,而是希望使用setLastName(String newLastName)这样的简单方法.这就是我调用wsimport任务的方式.

<wsimport debug="false" verbose="false" keep="${keep}" 
   extension="${extension}" destdir="${tmp.metro}" 
   wsdl="${licensing.wsdl}" 
   sourcedestdir="${licensingws.generated.src}"

   >

   <binding dir="${basedir}/etc" includes="${client.binding}"   
     />
    <arg value="-B-XautoNameResolution" />

  </wsimport>
Run Code Online (Sandbox Code Playgroud)

任务以这种方式定义:

有人知道我要设置什么,以便wsimport以我想要的方式生成类吗?非常感谢提前!

java ant web-services jaxb wsimport

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

WSDL文件上的JAX-WS错误:"解析组件的错误:schema'"

错误

我在Java项目中使用wsimport来生成三个SOAP Web服务的源代码.前两个工作正常:我使用JAX-WS Maven插件来获取WSDL文件并生成相应的Java源文件.

一个Web服务失败; 我收到以下错误:

[jaxws:wsimport]
Processing: /home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl
jaxws:wsimport args: [-s, /home/me/NetBeansProjects/Admin/AdminWeb/target/generated-sources/jaxws-wsimport, -d, /home/me/NetBeansProjects/Admin/AdminWeb/target/classes, -verbose, -catalog, /home/me/NetBeansProjects/Admin/AdminWeb/src/jax-ws-catalog.xml, -wsdllocation, http://erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx?WSDL, -target, 2.0, -extension, -Xnocompile, /home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl]
parsing WSDL...


src-resolve.4.2: Error resolving component 's:schema'. It was detected that 's:schema' is in namespace 'http://www.w3.org/2001/XMLSchema', but components from this namespace are not referenceable from schema document 'file:/home/me/NetBeansProjects/Admin/AdminWeb/src/wsdl/erp-app-devel.srv.mycompany.ca/EgTestReportEngine/Service.asmx.wsdl#types?schema1'. If this is the incorrect namespace, perhaps the prefix of 's:schema' needs to be changed. If this is the correct namespace, then an appropriate 'import' tag should …
Run Code Online (Sandbox Code Playgroud)

java wsdl jax-ws jaxb wsimport

24
推荐指数
2
解决办法
3万
查看次数

wsimport不会生成与soap标头相关的代码

我正在使用'wsimport'从wsdl生成客户端java代码.wsdl在这样的操作定义中有soap:header

<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://www.test.com/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://www.test.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
  <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Test session web service methods.</wsdl:documentation>
  <wsdl:types>
    <s:schema elementFormDefault="qualified" targetNamespace="http://www.test.com/">
      <s:element name="Logon">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="user" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="organisation" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="LogonResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="LogonResult" type="tns:LogonResult" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:simpleType name="LogonResult">
        <s:restriction base="s:string">
          <s:enumeration value="Ok" />
          <s:enumeration value="Error" />
        </s:restriction>
      </s:simpleType>
      <s:element name="Header" type="tns:Header" />
      <s:complexType …
Run Code Online (Sandbox Code Playgroud)

jaxb wsimport

18
推荐指数
1
解决办法
9504
查看次数

构造函数Service(URL,QName,WebServiceFeature [])未定义

我为我的客户端Web服务运行wsimport后,构造函数服务(URL,QName,WebServiceFeature [])是未定义的错误.我正在使用JDK 1.6.请帮忙.

错误

jax-ws wsimport

17
推荐指数
3
解决办法
3万
查看次数

wsimport"无法解析名称......"

我一直在尝试导入以下Web服务:http://soap.genome.jp/KEGG.wsdl with $ {JAVA_HOME}/bin/wsimport:

wsimport -version
JAX-WS RI 2.1.6 in JDK 6
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

parsing WSDL...

[WARNING] src-resolve: Cannot resolve the name 'soapenc:Array' to a(n) 'type definition' component.
  line 19 of http://soap.genome.jp/KEGG.wsdl#types?schema1

[ERROR] undefined simple or complex type 'soapenc:Array'
  line 19 of http://soap.genome.jp/KEGG.wsdl
(....)
Run Code Online (Sandbox Code Playgroud)

问题来自WSDL还是来自wsimport的实现?我应该使用其他工具吗?

谢谢

皮埃尔

java wsdl web-services wsimport

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

JAXB的混合内容无法使用WSDL

我正在使用NetBeans,我有两个项目:

  • 用于生成Web服务并将其部署到GlassFish的EJB模块
  • 一个简单的控制台客户端,用于测试和使用此Web服务

对于web服务,我使用的是带有混合内容元素的XSD.使用以下代码为JAXB导入添加绑定文件:

<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings
 xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
 xmlns:xjc= "http://java.sun.com/xml/ns/jaxb/xjc" jaxb:extensionBindingPrefixes="xjc"
 jaxb:version="2.0">
  <jaxb:globalBindings generateMixedExtensions="true"/>
</jaxb:bindings>
Run Code Online (Sandbox Code Playgroud)

它生成了这段代码:

@XmlMixed
@OverrideAnnotationOf
protected List<Serializable> contentOverrideForED;
Run Code Online (Sandbox Code Playgroud)

我可以使用这个生成的代码,虽然它并不理想.

我的问题在于客户端,我已经为我生成和部署的webservice添加了一个Web服务引用,只在localhost上运行.

使用相同的绑定文件WSDL Customization: External Binding File不会产生content代码,也不会直接使用它作为选项Wsimport,也不会将其用作Jaxb option.我有一种感觉,这种设置在某种程度上被忽视了,但是怎么样?

为什么最初的JAXB生成包括它以及wsimport为什么不使用它?我有点困惑.

java netbeans web-services jaxb wsimport

15
推荐指数
1
解决办法
2701
查看次数

标签 统计

wsimport ×10

java ×6

web-services ×5

jax-ws ×4

jaxb ×4

wsdl ×3

.net ×1

ant ×1

axis ×1

axis2 ×1

jar ×1

maven ×1

netbeans ×1