c#客户端调用java web service的插入对象方法时出现错误客户端发现响应内容类型为“text/html;charset=utf-8”,但应为“tex

时间:2022-11-13 14:33:15
在javawebservice中发布了一个insertObject(Object o)的方法,其中传入的o是hibernate 中的pojo类在c#客户端调用时出现警告:

客户端发现响应内容类型为“text/html;charset=utf-8”,但应为“text/xml”。
请求失败,错误信息为:
--
<html><head><title>Apache Tomcat/5.5.20 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 500 - </h1><HR size="1" noshade="noshade"><p><b>type</b> Exception report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>The server encountered an internal error () that prevented it from fulfilling this request.</u></p><p><b>exception</b> <pre>javax.servlet.ServletException: Error occured during request processing: null
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:757)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:658)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:357)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
</pre></p><p><b>root cause</b> <pre>java.lang.*Error
com.ctc.wstx.sr.NsAttributeCollector.getValue(NsAttributeCollector.java:329)
com.ctc.wstx.sr.BasicStreamReader.getAttributeValue(BasicStreamReader.java:643)
org.codehaus.xfire.util.stax.DepthXMLStreamReader.getAttributeValue(DepthXMLStreamReader.java:75)
org.codehaus.xfire.util.stax.DepthXMLStreamReader.getAttributeValue(DepthXMLStreamReader.java:75)
org.codehaus.xfire.aegis.stax.ElementReader.getAttributeReader(ElementReader.java:256)
org.codehaus.xfire.aegis.type.basic.ObjectType.readObject(ObjectType.java:70)
org.codehaus.xfire.aegis.type.basic.ObjectType.readObject(ObjectType.java:133)
org.codehaus.xfire.aegis.type.basic.ObjectType.readObject(ObjectType.java:133)
org.codehaus.xfire.aegis.type.basic.ObjectType.readObject(ObjectType.java:133)
org.codehaus.xfire.aegis.type.basic.ObjectType.readObject(ObjectType.java:133)

9 个解决方案

#1


C# webservice的web.config出现乱码.

#2


这个问题是编码的问题。。response.contenttype设置为 "text/plain” 试下

#3


出现这个错误,肯定是你返回的数据不是XML格式的,你Debug一下,测试下你的方法返回数据是否正确,估计是异常了,返回的异常信息

#4


在配置文件里设置一下编码代码,它有可能是读配置里的xml编码

#5


引用 2 楼 windstore 的回复:
这个问题是编码的问题。。response.contenttype设置为 "text/plain” 试下 

请问一下:在那设置这个response.contenttype?

#6


引用 3 楼 windstore 的回复:
出现这个错误,肯定是你返回的数据不是XML格式的,你Debug一下,测试下你的方法返回数据是否正确,估计是异常了,返回的异常信息

这个和返回类型无关,我返回的是boolean,是从c#想javawevservice传参数有关。

#7


这个问题我也碰到过,我是在我的C#客户端的app.config文件里修改<binding ....messageEncoding="Mtom">,就可以成功了,不知道对你有没有帮助。

#8


该回复于2009-06-19 09:42:31被版主删除

#9


我也遇到了这个问题  还没解决

#1


C# webservice的web.config出现乱码.

#2


这个问题是编码的问题。。response.contenttype设置为 "text/plain” 试下

#3


出现这个错误,肯定是你返回的数据不是XML格式的,你Debug一下,测试下你的方法返回数据是否正确,估计是异常了,返回的异常信息

#4


在配置文件里设置一下编码代码,它有可能是读配置里的xml编码

#5


引用 2 楼 windstore 的回复:
这个问题是编码的问题。。response.contenttype设置为 "text/plain” 试下 

请问一下:在那设置这个response.contenttype?

#6


引用 3 楼 windstore 的回复:
出现这个错误,肯定是你返回的数据不是XML格式的,你Debug一下,测试下你的方法返回数据是否正确,估计是异常了,返回的异常信息

这个和返回类型无关,我返回的是boolean,是从c#想javawevservice传参数有关。

#7


这个问题我也碰到过,我是在我的C#客户端的app.config文件里修改<binding ....messageEncoding="Mtom">,就可以成功了,不知道对你有没有帮助。

#8


该回复于2009-06-19 09:42:31被版主删除

#9


我也遇到了这个问题  还没解决