简体   繁体   English

发送字符串而不是JAXBElement <String>

[英]Send String instead of JAXBElement<String>

I'm consuming a .NET web service from my Java project. 我正在使用Java项目中的.NET Web服务。 I'm using Netbeans 8.2 and imported the web service. 我正在使用Netbeans 8.2并导入了Web服务。 The problem comes when I'm creating the complex object, Netbeans or Java translates the entity as JAXBElement instead of the String parameter. 当我创建复杂对象时,问题就来了,Netbeans或Java将实体转换为JAXBElement而不是String参数。

的JAXBElement <字符串>

My question is how to configure or map the entity in a way that sends a String, Datetime or double object. 我的问题是如何以发送String,Datetime或double对象的方式配置或映射实体。

This is my class that netbeans generates after import WS. 这是netbeans在导入WS之后生成的我的类。

public class GeoCountriesEntity {

@XmlElement(name = "CountryId")
protected Integer countryId;
@XmlElementRef(name = "Description", namespace = "http://schemas.datacontract.org/2004/07/Entities.Enterprise.Geo", type = JAXBElement.class, required = false)
protected JAXBElement<String> description;
@XmlElementRef(name = "UserCode", namespace = "http://schemas.datacontract.org/2004/07/Entities.Enterprise.Geo", type = JAXBElement.class, required = false)
protected JAXBElement<String> userCode;}

I ended up switching to Maven, then imported my web service, finally, append the next setting to my pom.xml 我最终切换到Maven,然后导入了我的Web服务,最后,将下一个设置附加到我的pom.xml中

<bindingFiles>
   <bindigFile>${basedir}/jaxb-bindings.xml</bindigFile>
</bindingFiles>

Create a jaxb-binding.xml in my root project. 在我的根项目中创建一个jaxb-binding.xml。

<jaxb:bindings version="2.0" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb">
<jaxb:bindings>
    <jaxb:globalBindings generateElementProperty="false"/>
</jaxb:bindings>

This is my full pom.xml, 这是我完整的pom.xml,

<?xml version="1.0" encoding="UTF-8"?>
<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>coremanagersystem</groupId>
<artifactId>CoreManagerSystem</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<build>
    <resources>
        <resource>
            <targetPath>META-INF</targetPath>
            <directory>src</directory>
            <includes>
                <include>jax-ws-catalog.xml</include>
                <include>wsdl</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>org.jvnet.jax-ws-commons</groupId>
            <artifactId>jaxws-maven-plugin</artifactId>
            <version>2.3</version>
            <executions>
                <execution>
                    <goals>
                        <goal>wsimport</goal>
                    </goals>
                    <configuration>
                        <wsdlFiles>
                            <wsdlFile>localhost_52536/Enterprise/Geo/GeoCountries.svc.wsdl</wsdlFile>
                        </wsdlFiles>
                        <packageName>ws.geo</packageName>
                        <vmArgs>
                            <vmArg>-Djavax.xml.accessExternalSchema=all</vmArg>
                        </vmArgs>
                        <wsdlLocation>http://localhost:52536/Enterprise/Geo/GeoCountries.svc?wsdl</wsdlLocation>
                        <staleFile>${project.build.directory}/jaxws/stale/GeoCountries.svc.stale</staleFile>
                        <!-- THIS SAVE MY LIFE -->
                        <bindingFiles>
                            <bindigFile>${basedir}/jaxb-bindings.xml</bindigFile>
                        </bindingFiles>
                        <!-- THIS SAVE MY LIFE -->
                    </configuration>
                    <id>wsimport-generate-GeoCountries.svc</id>
                    <phase>generate-sources</phase>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>javax.xml</groupId>
                    <artifactId>webservices-api</artifactId>
                    <version>2.0</version>
                </dependency>
            </dependencies>
            <configuration>
                <sourceDestDir>${project.build.directory}/generated-sources/jaxws-wsimport</sourceDestDir>
                <xnocompile>true</xnocompile>
                <verbose>true</verbose>
                <extension>true</extension>
                <catalog>${basedir}/src/jax-ws-catalog.xml</catalog>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>org.glassfish.metro</groupId>
        <artifactId>webservices-rt</artifactId>
        <version>2.3</version>
    </dependency>
</dependencies>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>
<name>Core Manager System</name>
<description>Handle the core information for your applications.</description>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM