无法在JAX-WS中反序列化响应

时间:2016-01-06 13:36:17

标签: java xml hibernate web-services jax-ws

我创建了一个通过id返回用户数据的Web服务,我使用Hibernate ORM进行DAO操作。我的Web服务中只有一个xml文件,它是hibernate.cfg.xml。这是我的档案hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
        <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@devoradb.test:1521:orcl</property>
        <property name="hibernate.connection.username">mistest</property>
        <property name="hibernate.connection.password">123</property>
        <mapping class="mis.pojos.ministry.MinistryPosition" ></mapping>
        <mapping class="mis.pojos.ministry.StructureOfMinistry" ></mapping>
        <mapping class="mis.pojos.software.ModuleInSoftware" ></mapping>
        <mapping class="mis.pojos.software.CategoryInSoftware" ></mapping>
        <mapping class="mis.pojos.software.Software" ></mapping>
        <mapping class="mis.pojos.software.ColorCode" ></mapping>
        <mapping class="mis.pojos.user.DigitalSmartCard" ></mapping>
        <mapping class="mis.pojos.user.IdCard" ></mapping>
        <mapping class="mis.pojos.user.UserModule" ></mapping>
        <mapping class="mis.pojos.user.UserRole" ></mapping>
        <mapping class="mis.pojos.user.UserSoftware" ></mapping>
        <mapping class="mis.pojos.user.Restraining" ></mapping>
        <mapping class="mis.pojos.user.User" ></mapping>
        <mapping class="mis.pojos.software.ColorCode" ></mapping>
        <mapping class="mis.pojos.user.LoginInfo" ></mapping>
        <mapping class="mis.pojos.user.LoginToken" ></mapping>
        <mapping class="mis.pojos.user.UserCategory" ></mapping>
        <mapping class="mis.pojos.user.LaborContract"></mapping>
    </session-factory>
</hibernate-configuration>

当我在任何应用程序中运行getUserById(long id) webMethod时,我遇到了异常。

Exception in thread "main" com.sun.xml.internal.ws.encoding.soap.DeserializationException: [failed to localize] Failed to deserialize the response.(javax.xml.bind.UnmarshalException
 - with linked exception:
[javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,25392]
Message: XML document structures must start and end within the same entity.])
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:111)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:77)
    at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:147)
    at com.sun.proxy.$Proxy36.getUserById(Unknown Source)
    at Test.getUserById(Test.java:13)
    at Test.main(Test.java:7)
Caused by: javax.xml.bind.UnmarshalException
 - with linked exception:
[javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,25392]
Message: XML document structures must start and end within the same entity.]
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:470)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:402)
    at com.sun.xml.internal.bind.v2.runtime.BridgeImpl.unmarshal(BridgeImpl.java:109)
    at com.sun.xml.internal.bind.api.Bridge.unmarshal(Bridge.java:222)
    at com.sun.xml.internal.ws.db.glassfish.BridgeWrapper.unmarshal(BridgeWrapper.java:257)
    at com.sun.xml.internal.ws.client.sei.ResponseBuilder$DocLit.readResponse(ResponseBuilder.java:635)
    at com.sun.xml.internal.ws.client.sei.StubHandler.readResponse(StubHandler.java:243)
    at com.sun.xml.internal.ws.db.DatabindingImpl.deserializeResponse(DatabindingImpl.java:189)
    at com.sun.xml.internal.ws.db.DatabindingImpl.deserializeResponse(DatabindingImpl.java:276)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:104)
    ... 5 more
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,25392]
Message: XML document structures must start and end within the same entity.
    at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:601)
    at com.sun.xml.internal.ws.util.xml.XMLStreamReaderFilter.next(XMLStreamReaderFilter.java:81)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:181)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:400)
    ... 13 more
Java Result: 1

我用Google搜索了很多次,我无法找到解决问题的确切方法。

0 个答案:

没有答案