Я использую jaxb2-marshaller для создания классов для связи с веб-сервисом. Java-классы генерируются с использованием некоторых файлов wsdl.
Сейчас все в порядке, но когда я пытаюсь использовать некоторые из сгенерированных классов, я получал эту ошибку немаршаллинга, хотя я использую сгенерированные классы ObjectFactory.
Некоторые из стека:
org.springframework.ws.soap.client.SoapFaultClientException: Unmarshalling Error: unexpected element (uri:"http://xxxxxxxxx", local:"customer"). Expected elements are <{}customer>
at org.springframework.ws.soap.client.core.SoapFaultMessageResolver.resolveFault(SoapFaultMessageResolver.java:38)
at org.springframework.ws.client.core.WebServiceTemplate.handleFault(WebServiceTemplate.java:826)
at org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:621)
at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:555)
at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:390)
at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:383)
at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:373)
at einvoice.service.CustomerService.createCustomer(CustomerService.java:40)
at einvoice.controller.facturatie.FacturatieOverzichtController.handleRenderRequest(FacturatieOverzichtController.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
И мой класс:
@Service
public class CustomerService {
@Autowired
private WebServiceTemplate customerDaoTemplate;
private ObjectFactory customerObjectFactory;
public CustomerService() {
customerObjectFactory = new ObjectFactory();
}
public boolean createCustomer(Customer c)
{
System.out.println("CREATING CUSTOMER");
einvoice.proxy.customerdaoservice.Customer customer = customerObjectFactory.createCustomer();
customer.setConnectionURL("test");
customer.setUid("testuid");
customer.setName("KorneelTest");
Create create = customerObjectFactory.createCreate();
create.setCustomer(customer);
try
{
customerDaoTemplate.marshalSendAndReceive(customerObjectFactory.createCreate(create));
return true;
}
catch(Exception ex)
{
ex.printStackTrace();
return false;
}
}
Эту ошибку показывает метод createCustomer ().
The generated ObjectFactory class:
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.7
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2014.09.12 at 12:04:04 PM CEST
//
package einvoice.proxy.customerdaoservice;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlElementDecl;
import javax.xml.bind.annotation.XmlRegistry;
import javax.xml.namespace.QName;
/**
* This object contains factory methods for each
* Java content interface and Java element interface
* generated in the be.icredit.einvoice.proxy.customerdaoservice package.
* <p>An ObjectFactory allows you to programatically
* construct new instances of the Java representation
* for XML content. The Java representation of XML
* content can consist of schema derived interfaces
* and classes representing the binding of schema
* type definitions, element declarations and model
* groups. Factory methods for each of these are
* provided in this class.
*
*/
@XmlRegistry
public class ObjectFactory {
private final static QName _AbstractFilter_QNAME = new QName("http://xxxxxxx/", "abstractFilter");
private final static QName _Customer_QNAME = new QName("http://xxxxxxx/", "customer");
private final static QName _FindSingleResponse_QNAME = new QName("http://xxxxxxx/", "findSingleResponse");
private final static QName _Create_QNAME = new QName("http://xxxxxxx/", "create");
private final static QName _Find_QNAME = new QName("http://xxxxxxx/", "find");
private final static QName _CreateResponse_QNAME = new QName("xxxxxxx/", "createResponse");
private final static QName _FindResponse_QNAME = new QName("http://xxxxxxx/", "findResponse");
private final static QName _UpdateResponse_QNAME = new QName("http://xxxxxxx/", "updateResponse");
private final static QName _FindSingle_QNAME = new QName("http://xxxxxxx/", "findSingle");
private final static QName _CustomerFilter_QNAME = new QName("http://xxxxxxx/", "customerFilter");
private final static QName _Update_QNAME = new QName("http://xxxxxxx/", "update");
private final static QName _AbstractEntity_QNAME = new QName("http://xxxxxxx/", "abstractEntity");
/**
* Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: be.icredit.einvoice.proxy.customerdaoservice
*
*/
public ObjectFactory() {
}
/**
* Create an instance of {@link Update }
*
*/
public Update createUpdate() {
return new Update();
}
/**
* Create an instance of {@link CustomerFilter }
*
*/
public CustomerFilter createCustomerFilter() {
return new CustomerFilter();
}
/**
* Create an instance of {@link UpdateResponse }
*
*/
public UpdateResponse createUpdateResponse() {
return new UpdateResponse();
}
/**
* Create an instance of {@link FindSingle }
*
*/
public FindSingle createFindSingle() {
return new FindSingle();
}
/**
* Create an instance of {@link FindResponse }
*
*/
public FindResponse createFindResponse() {
return new FindResponse();
}
/**
* Create an instance of {@link CreateResponse }
*
*/
public CreateResponse createCreateResponse() {
return new CreateResponse();
}
/**
* Create an instance of {@link FindSingleResponse }
*
*/
public FindSingleResponse createFindSingleResponse() {
return new FindSingleResponse();
}
/**
* Create an instance of {@link Customer }
*
*/
public Customer createCustomer() {
return new Customer();
}
/**
* Create an instance of {@link Create }
*
*/
public Create createCreate() {
return new Create();
}
/**
* Create an instance of {@link Find }
*
*/
public Find createFind() {
return new Find();
}
/**
* Create an instance of {@link Pager }
*
*/
public Pager createPager() {
return new Pager();
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link AbstractFilter }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "abstractFilter")
public JAXBElement<AbstractFilter> createAbstractFilter(AbstractFilter value) {
return new JAXBElement<AbstractFilter>(_AbstractFilter_QNAME, AbstractFilter.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link Customer }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "customer")
public JAXBElement<Customer> createCustomer(Customer value) {
return new JAXBElement<Customer>(_Customer_QNAME, Customer.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link FindSingleResponse }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "findSingleResponse")
public JAXBElement<FindSingleResponse> createFindSingleResponse(FindSingleResponse value) {
return new JAXBElement<FindSingleResponse>(_FindSingleResponse_QNAME, FindSingleResponse.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link Create }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "create")
public JAXBElement<Create> createCreate(Create value) {
return new JAXBElement<Create>(_Create_QNAME, Create.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link Find }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "find")
public JAXBElement<Find> createFind(Find value) {
return new JAXBElement<Find>(_Find_QNAME, Find.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link CreateResponse }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "createResponse")
public JAXBElement<CreateResponse> createCreateResponse(CreateResponse value) {
return new JAXBElement<CreateResponse>(_CreateResponse_QNAME, CreateResponse.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link FindResponse }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "findResponse")
public JAXBElement<FindResponse> createFindResponse(FindResponse value) {
return new JAXBElement<FindResponse>(_FindResponse_QNAME, FindResponse.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link UpdateResponse }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "updateResponse")
public JAXBElement<UpdateResponse> createUpdateResponse(UpdateResponse value) {
return new JAXBElement<UpdateResponse>(_UpdateResponse_QNAME, UpdateResponse.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link FindSingle }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "findSingle")
public JAXBElement<FindSingle> createFindSingle(FindSingle value) {
return new JAXBElement<FindSingle>(_FindSingle_QNAME, FindSingle.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link CustomerFilter }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "customerFilter")
public JAXBElement<CustomerFilter> createCustomerFilter(CustomerFilter value) {
return new JAXBElement<CustomerFilter>(_CustomerFilter_QNAME, CustomerFilter.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link Update }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "update")
public JAXBElement<Update> createUpdate(Update value) {
return new JAXBElement<Update>(_Update_QNAME, Update.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link AbstractEntity }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "abstractEntity")
public JAXBElement<AbstractEntity> createAbstractEntity(AbstractEntity value) {
return new JAXBElement<AbstractEntity>(_AbstractEntity_QNAME, AbstractEntity.class, null, value);
}
}
Класс package-info.java:
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.7
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2014.09.12 at 03:44:51 PM CEST
//
@javax.xml.bind.annotation.XmlSchema(namespace = "http://xxxxxxx/")
package einvoice.proxy.customerdaoservice;
6 ответов
- Либо исходная схема не имеет правильного целевого пространства имен.
- Или вам почему-то не хватает
package-info.java
Разместите свои ObjectFactory
и package-info.java
(должны быть созданы рядом с ObjectFactory
).
На самом деле вам не нужно создавать свои экземпляры с помощью ObjectFactory
, обычные конструкции new
работают нормально. :) ObjectFactory
не творит волшебства. Он в основном используется JAXB во время демаршаллинга.
Пс. Пометьте вопросы, связанные с maven-jaxb2-plugin
, тегом maven-jaxb2-plugin
- это поможет мне быстрее привлечь мое внимание.
Используйте следующую аннотацию
@XmlRootElement(name="Customer")
В корне класса, как показано ниже. Поскольку JAXb не создает аннотацию @XmlRootElement автоматически, вам необходимо вручную поместить эту аннотацию в начало класса.
The generated ObjectFactory class:
This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.7
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2014.09.12 at 12:04:04 PM CEST
//
package einvoice.proxy.customerdaoservice;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlElementDecl;
import javax.xml.bind.annotation.XmlRegistry;
import javax.xml.namespace.QName;
/**
* This object contains factory methods for each
* Java content interface and Java element interface
* generated in the be.icredit.einvoice.proxy.customerdaoservice package.
* <p>An ObjectFactory allows you to programatically
* construct new instances of the Java representation
* for XML content. The Java representation of XML
* content can consist of schema derived interfaces
* and classes representing the binding of schema
* type definitions, element declarations and model
* groups. Factory methods for each of these are
* provided in this class.
*
*/
@XmlRootElement(name="Customer")
@XmlRegistry
public class ObjectFactory {
private final static QName _AbstractFilter_QNAME = new QName("http://xxxxxxx/", "abstractFilter");
private final static QName _Customer_QNAME = new QName("http://xxxxxxx/", "customer");
private final static QName _FindSingleResponse_QNAME = new QName("http://xxxxxxx/", "findSingleResponse");
private final static QName _Create_QNAME = new QName("http://xxxxxxx/", "create");
private final static QName _Find_QNAME = new QName("http://xxxxxxx/", "find");
private final static QName _CreateResponse_QNAME = new QName("xxxxxxx/", "createResponse");
private final static QName _FindResponse_QNAME = new QName("http://xxxxxxx/", "findResponse");
private final static QName _UpdateResponse_QNAME = new QName("http://xxxxxxx/", "updateResponse");
private final static QName _FindSingle_QNAME = new QName("http://xxxxxxx/", "findSingle");
private final static QName _CustomerFilter_QNAME = new QName("http://xxxxxxx/", "customerFilter");
private final static QName _Update_QNAME = new QName("http://xxxxxxx/", "update");
private final static QName _AbstractEntity_QNAME = new QName("http://xxxxxxx/", "abstractEntity");
/**
* Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: be.icredit.einvoice.proxy.customerdaoservice
*
*/
public ObjectFactory() {
}
/**
* Create an instance of {@link Update }
*
*/
public Update createUpdate() {
return new Update();
}
/**
* Create an instance of {@link CustomerFilter }
*
*/
public CustomerFilter createCustomerFilter() {
return new CustomerFilter();
}
/**
* Create an instance of {@link UpdateResponse }
*
*/
public UpdateResponse createUpdateResponse() {
return new UpdateResponse();
}
/**
* Create an instance of {@link FindSingle }
*
*/
public FindSingle createFindSingle() {
return new FindSingle();
}
/**
* Create an instance of {@link FindResponse }
*
*/
public FindResponse createFindResponse() {
return new FindResponse();
}
/**
* Create an instance of {@link CreateResponse }
*
*/
public CreateResponse createCreateResponse() {
return new CreateResponse();
}
/**
* Create an instance of {@link FindSingleResponse }
*
*/
public FindSingleResponse createFindSingleResponse() {
return new FindSingleResponse();
}
/**
* Create an instance of {@link Customer }
*
*/
public Customer createCustomer() {
return new Customer();
}
/**
* Create an instance of {@link Create }
*
*/
public Create createCreate() {
return new Create();
}
/**
* Create an instance of {@link Find }
*
*/
public Find createFind() {
return new Find();
}
/**
* Create an instance of {@link Pager }
*
*/
public Pager createPager() {
return new Pager();
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link AbstractFilter }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "abstractFilter")
public JAXBElement<AbstractFilter> createAbstractFilter(AbstractFilter value) {
return new JAXBElement<AbstractFilter>(_AbstractFilter_QNAME, AbstractFilter.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link Customer }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "customer")
public JAXBElement<Customer> createCustomer(Customer value) {
return new JAXBElement<Customer>(_Customer_QNAME, Customer.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link FindSingleResponse }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "findSingleResponse")
public JAXBElement<FindSingleResponse> createFindSingleResponse(FindSingleResponse value) {
return new JAXBElement<FindSingleResponse>(_FindSingleResponse_QNAME, FindSingleResponse.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link Create }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "create")
public JAXBElement<Create> createCreate(Create value) {
return new JAXBElement<Create>(_Create_QNAME, Create.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link Find }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "find")
public JAXBElement<Find> createFind(Find value) {
return new JAXBElement<Find>(_Find_QNAME, Find.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link CreateResponse }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "createResponse")
public JAXBElement<CreateResponse> createCreateResponse(CreateResponse value) {
return new JAXBElement<CreateResponse>(_CreateResponse_QNAME, CreateResponse.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link FindResponse }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "findResponse")
public JAXBElement<FindResponse> createFindResponse(FindResponse value) {
return new JAXBElement<FindResponse>(_FindResponse_QNAME, FindResponse.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link UpdateResponse }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "updateResponse")
public JAXBElement<UpdateResponse> createUpdateResponse(UpdateResponse value) {
return new JAXBElement<UpdateResponse>(_UpdateResponse_QNAME, UpdateResponse.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link FindSingle }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "findSingle")
public JAXBElement<FindSingle> createFindSingle(FindSingle value) {
return new JAXBElement<FindSingle>(_FindSingle_QNAME, FindSingle.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link CustomerFilter }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "customerFilter")
public JAXBElement<CustomerFilter> createCustomerFilter(CustomerFilter value) {
return new JAXBElement<CustomerFilter>(_CustomerFilter_QNAME, CustomerFilter.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link Update }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "update")
public JAXBElement<Update> createUpdate(Update value) {
return new JAXBElement<Update>(_Update_QNAME, Update.class, null, value);
}
/**
* Create an instance of {@link JAXBElement }{@code <}{@link AbstractEntity }{@code >}}
*
*/
@XmlElementDecl(namespace = "http://xxxxxxx/", name = "abstractEntity")
public JAXBElement<AbstractEntity> createAbstractEntity(AbstractEntity value) {
return new JAXBElement<AbstractEntity>(_AbstractEntity_QNAME, AbstractEntity.class, null, value);
}
}
Если в вашем проекте более 1 модуля, проверьте наличие повторяющихся имен классов или имен каталогов.
Я получал ту же ошибку, и мне удалось ее решить, изменив имена пакетов в моем проекте.
В моем проекте было два модуля с идентичной структурой каталогов module/src/main/java/com/example/directory/path
У нас было две разные конечные точки и два разных WSDL, но оба были от одного и того же клиента. Когда мы автоматически сгенерировали классы POJO из WSDL, он создал для нас файловую структуру. Я заметил, что пространство имен, сгенерированное в XML, использовало одно и то же пространство имен для XML, сгенерированного в обоих модулях, когда они должны были быть разными (отсюда трассировка стека).
Все, что я сделал для решения проблемы, это изменил имена каталогов, чтобы они были более конкретными для каждого модуля.
Я думаю, что нашел проблему.
Я использовал версию 0.9.0 maven-jaxb2-plugin. Эта версия дала мне то странное исключение! Я вернулся к версии maven-jaxbe2-plugin 0.8.3, эта версия выдает ошибку 404:
08:56:45,212 ERROR [DispatcherPortlet:572] Could not complete request
org.springframework.ws.client.WebServiceTransportException: Not Found [404]
at org.springframework.ws.client.core.WebServiceTemplate.handleError(WebServiceTemplate.java:695)
at org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:606)
at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:555)
at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:390)
at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:383)
at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:373)
at be.icredit.einvoice.service.CustomerService.createCustomer(CustomerService.java:43)
at be.icredit.einvoice.controller.facturatie.FacturatieOverzichtController.handleRenderRequest(FacturatieOverzichtController.java:36)
Эта трассировка создается из-за того, что имена de request и response message не совпадают в WSDL и de java классах:
Ответное сообщение:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "acceptMessageResponse", propOrder = {
"acceptMessageReturn"
})
public class AcceptMessageResponse {
@XmlElement(required = true)
protected String acceptMessageReturn;
public String getAcceptMessageReturn() {
return acceptMessageReturn;
}
public void setAcceptMessageReturn(String value) {
this.acceptMessageReturn = value;
}
}
Принять сообщение:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "acceptMessage", propOrder = {
"in0"
})
public class AcceptMessage {
@XmlElement(required = true)
protected String in0;
public String getIn0() {
return in0;
}
public void setIn0(String value) {
this.in0 = value;
}
}
В этом примере WSDL должен определять: 1.
<?xml version='1.0' encoding='UTF-8'?>
<wsdl:definitions name="PORX_IN02016001SACYL"
targetNamespace="http://components.mule.server.mirth.webreach.com"
xmlns:ns1="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://components.mule.server.mirth.webreach.com"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xs:schema elementFormDefault="qualified"
targetNamespace="http://components.mule.server.mirth.webreach.com"
version="1.0" xmlns:tns="http://components.mule.server.mirth.webreach.com"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="acceptMessage">
<xs:complexType>
<xs:sequence>
<xs:element form="unqualified" name="in0" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="acceptMessageResponse" nillable="true"
type="xs:anyType" />
<xs:complexType name="acceptMessageResponse">
<xs:sequence />
</xs:complexType>
</xs:schema>
</wsdl:types>
<wsdl:message name="acceptMessage">
<wsdl:part element="tns:acceptMessage" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="acceptMessageResponse">
<wsdl:part element="tns:acceptMessageResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="PORX_IN02016001SACYL">
<wsdl:operation name="acceptMessage">
<wsdl:input message="tns:acceptMessage" name="acceptMessage">
</wsdl:input>
<wsdl:output message="tns:acceptMessageResponse" name="acceptMessageResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="PORX_IN02016001SACYLSoapBinding" type="tns:PORX_IN02016001SACYL">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="acceptMessage">
<soap:operation soapAction="" style="document" />
<wsdl:input name="acceptMessage">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="acceptMessageResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="PORX_IN02016001SACYL">
<wsdl:port binding="tns:PORX_IN02016001SACYLSoapBinding"
name="PORX_IN02016001SACYL">
<soap:address
location="http://localhost:8080/vere/services/PORX_IN02016001SACYL" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Если используется SAXParserFactory, а затем при выполнении десортировки возникает ошибка. Решение может лежать в том, чтобы знать SAXParserFactory о пространстве имен.
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
Похожие вопросы
Связанные вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.