Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未能在JAX-WS中反序列化响应_Java_Xml_Hibernate_Web Services_Jax Ws - Fatal编程技术网

Java 未能在JAX-WS中反序列化响应

Java 未能在JAX-WS中反序列化响应,java,xml,hibernate,web-services,jax-ws,Java,Xml,Hibernate,Web Services,Jax Ws,我创建了一个web服务,它通过id返回用户数据,我使用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"

我创建了一个web服务,它通过id返回用户数据,我使用
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>

我在谷歌上搜索了很多次,找不到解决问题的确切方法。

JAX-WS将数据作为XML传输。问题在于XML,而不是hibernate配置文件。。。(您的hibernate配置文件在第1行中没有25392个字符。)所以请关注JAX-WS部分,忘掉hibernate。谢谢您的评论。当我创建任何其他方法并运行它时,没有问题。使用hibernate映射的类时出现问题。出于这个原因,我认为问题可能出在hibernate上。好吧,你们还并没有提供任何我可以用来追踪问题的东西。。。站在你的立场上,我要做的是使用像Wireshark(或类似工具)这样的工具来查看XML实际上是什么,并试图找出这个XML无效的原因。祝你好运。我只是想说我也有同样的问题,不幸的是,我必须通过使用DTO对象来解决这个问题,而不是在web服务方法中发送“纯”数据库实体。WS-serializer似乎不是Hibernate实体的超级粉丝。@JustACluelessNewbie感谢您的评论。我也用DTO解决了这个问题。
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