当前位置: 首页 > article >正文

Web Service Sender ParseError Invalid byte 1 of 1-byte UTF-8 sequence

说明

发送webservice报错 Invalid UTF-8 start byte 0xfc when using Web Service Sender

Web Service Sender error
ERROR MESSAGE: Error creating web service dispatch
com.sun.xml.ws.streaming.XMLStreamReaderException: XML reader error: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[183,79]
Message: Invalid byte 1 of 1-byte UTF-8 sequence.
	at com.sun.xml.ws.streaming.XMLStreamReaderUtil.wrapException(XMLStreamReaderUtil.java:326)
	at com.sun.xml.ws.streaming.XMLStreamReaderUtil.skipTags(XMLStreamReaderUtil.java:216)
	at com.sun.xml.ws.streaming.XMLStreamReaderUtil.skipElement(XMLStreamReaderUtil.java:189)
	at com.sun.xml.ws.wsdl.parser.WSDLParserExtensionFacade.portTypeOperationElements(WSDLParserExtensionFacade.java:190)
	at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parsePortTypeOperation(RuntimeWSDLParser.java:892)
	at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parsePortType(RuntimeWSDLParser.java:860)
	at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parseWSDL(RuntimeWSDLParser.java:473)
	at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:249)
	at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:209)
	at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:178)
	at com.sun.xml.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:364)
	at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:322)
	at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:231)
	at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:212)
	at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:208)
	at com.sun.xml.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:119)
	at javax.xml.ws.Service.<init>(Service.java:112)
	at javax.xml.ws.Service.create(Service.java:765)
	at com.mirth.connect.connectors.ws.WebServiceDispatcher.createDispatch(WebServiceDispatcher.java:269)
	at com.mirth.connect.connectors.ws.WebServiceDispatcher.send(WebServiceDispatcher.java:458)
	at com.mirth.connect.donkey.server.channel.DestinationConnector.handleSend(DestinationConnector.java:904)
	at com.mirth.connect.donkey.server.channel.DestinationConnector.process(DestinationConnector.java:527)
	at com.mirth.connect.donkey.server.channel.DestinationChain.doCall(DestinationChain.java:122)
	at com.mirth.connect.donkey.server.channel.DestinationChain.call(DestinationChain.java:64)
	at com.mirth.connect.donkey.server.channel.Channel.process(Channel.java:1850)
	at com.mirth.connect.donkey.server.channel.Channel.dispatchRawMessage(Channel.java:1302)
	at com.mirth.connect.donkey.server.channel.SourceConnector.dispatchRawMessage(SourceConnector.java:194)
	at com.mirth.connect.server.controllers.DonkeyEngineController.dispatchRawMessage(DonkeyEngineController.java:1145)
	at com.mirth.connect.server.api.servlets.MessageServlet.processMessage(MessageServlet.java:119)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at com.mirth.connect.server.api.providers.MirthResourceInvocationHandlerProvider$1.invoke(MirthResourceInvocationHandlerProvider.java:219)
	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)
	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)
	at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:205)
	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
	at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
	at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
	at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
	at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)
	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)
	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:471)
	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:425)
	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:383)
	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:336)
	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:223)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656)
	at com.mirth.connect.server.api.providers.StrictTransportSecurityFilter.doFilter(StrictTransportSecurityFilter.java:33)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
	at com.mirth.connect.server.MethodFilter.doFilter(MethodFilter.java:37)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
	at com.mirth.connect.server.api.providers.RequestedWithFilter.doFilter(RequestedWithFilter.java:53)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
	at com.mirth.connect.server.api.providers.ClickjackingFilter.doFilter(ClickjackingFilter.java:44)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
	at com.mirth.connect.server.api.providers.ApiOriginFilter.doFilter(ApiOriginFilter.java:71)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:59)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:516)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:555)
	at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:410)
	at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:164)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
	at java.base/java.lang.Thread.run(Thread.java:842)
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[183,79]
Message: Invalid byte 1 of 1-byte UTF-8 sequence.
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:652)
	at com.sun.xml.ws.util.xml.XMLStreamReaderFilter.next(XMLStreamReaderFilter.java:96)
	at com.sun.xml.ws.streaming.XMLStreamReaderUtil.skipTags(XMLStreamReaderUtil.java:205)
	... 103 more

解决方法

这个是mirth的一个bug:如果web服务WSDL包含非ascii标准字符,Mirth将无法解析该WSDL。

如果您收到错误消息,例如“获取操作失败,方法失败:500内部服务器错误”,这可能是由web服务返回的WSDL中的非标准ASCII字符引起的;例如重音字符。
Mirth Connect的当前版本没有为web服务客户端定义编码的选项,而是使用默认的操作系统编码(在大多数情况下为windows-1252),这实际上是不正确的(应该是UTF-8)。
但作为一种解决方法,您可以覆盖mcservice.vmoptions文件中的“默认”编码。
请注意,在mcservice.vmoptions中设置默认编码会影响您在连接器上选择“默认编码”的所有通道!
由于大多数web服务提供商以UTF-8返回WSDL,因此可以将以下行添加到mcservice.vmoptions中作为解决方法。(别忘了重新启动Mirth Connect服务!)

-Dfile.encoding=utf-8

在这里插入图片描述


http://www.kler.cn/news/341236.html

相关文章:

  • 书籍第4章-SAP项目中的数据迁移
  • GO网络编程(六):海量用户通信系统4:读写数据包与登录消息处理
  • 运维问题0004:MM模块-操作MIGO过账报错“对象OFN_YR 2840 WE2840 的编码范围没有找到”
  • js 深入理解函数(二):扩展操作符、函数的内部对象、属性和方法
  • 【C/C++】错题记录(七)
  • 道可云入围2024元宇宙“数据要素”全国大赛
  • 【GESP】C++一级练习BCQM3035,实数计算,国庆七天乐
  • LeetCode讲解篇之79. 单词搜索
  • R语言绘制三维散点图
  • Ubuntu下v4l2采集摄像头视频
  • YOLO11改进|卷积篇|RFAConv创新空间注意力和标准卷积操作
  • OpenCV高级图形用户界面(4)获取鼠标滚轮事件的增量值函数getMouseWheelDelta()的使用
  • 毕业设计项目——基于RISC-V的标签化跨层调度应用任务管理(论文/代码)
  • SpringCloud面试题-SpringCloud主要的组件有哪些
  • 系统端口号被占用问题处理(WindowsLinux系统)
  • T8332FN凯钰Tmtech LED驱动芯片车规级AEC-Q100
  • MySql 多表设计
  • 尚硅谷 rabbitmq 2024 第34-37 延时队列 答疑
  • 架构师知识梳理(八):系统安全
  • 标准正态分布的数据 tensorflow 实现正态分布图,python 编程,数据分析和人工智能