我试图解析一个xml文件,但它不断地出现异常。我在这里寻找一些解决办法,因为很多人和我有几乎相同的问题,但都是徒劳的。请求和响应似乎是正确的,我已经检查了我的xml,没有发现任何错误。
以下是我的Java代码:
public static void main(String args[])
{
SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
SOAPConnection soapConnection = soapConnectionFactory.createConnection();
// Send SOAP Message to SOAP Server
String url = "https://sync-test.severa.com/webservice/S3/API.svc";
SOAPMessage soapResponse = soapConnection.call(createSOAPRequest(), url);
XMLTransform(soapResponse.toString());
}
private static SOAPMessage createSOAPRequest()
{
MessageFactory messageFactory = MessageFactory.newInstance();
SOAPMessage soapMessage = messageFactory.createMessage();
SOAPPart soapPart = soapMessage.getSOAPPart();
String serverURI = "http://soap.severa.com/";
// SOAP Envelope
SOAPEnvelope envelope = soapPart.getEnvelope();
//SOAP Header content
SOAPFactory soapFactory = SOAPFactory.newInstance();
SOAPHeader header = soapMessage.getSOAPHeader();
Name headerName = soapFactory.createName("WebServicePassword", "ns1", serverURI);
SOAPHeaderElement headerElement = header.addHeaderElement(headerName);
headerElement.addTextNode("uheyhd80984023984209380");
// SOAP Body
SOAPBody soapBody = envelope.getBody();
//Create GetAllInvoiceStatuses
Name name = envelope.createName("GetAllInvoiceStatuses", "ns1", serverURI);
SOAPElement child = soapBody.addBodyElement(name);
child.addNamespaceDeclaration("ns1", serverURI);
MimeHeaders headers = soapMessage.getMimeHeaders();
headers.addHeader("SOAPAction", "http://soap.severa.com/IInvoiceStatus/GetAllInvoiceStatuses");
}
private static void XMLTransform (String xml) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
InputSource is = new InputSource(new StringReader(xml.toString()));
Document document = builder.parse(is); // here is the exception!!
}
以下是我从服务器得到的xml响应:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetAllInvoiceStatusesResponse xmlns="http://soap.severa.com/">
<GetAllInvoiceStatusesResult
xmlns:a="http://schemas.datacontract.org/2004/07/Severa.Entities.API"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:InvoiceStatus>
<a:Description i:nil="true"/>
<a:HasInvoiceNumber>false</a:HasInvoiceNumber>
<a:IsActive>true</a:IsActive>
<a:IsDefault>true</a:IsDefault>
<a:IsPaid>false</a:IsPaid>
<a:IsReadOnly>false</a:IsReadOnly>
<a:IsSent>false</a:IsSent>
<a:IsWaitingPayment>false</a:IsWaitingPayment>
<a:Name>Utkast</a:Name>
<a:SortOrder>1</a:SortOrder>
</a:InvoiceStatus>
<a:InvoiceStatus>
<a:Description i:nil="true"/>
<a:HasInvoiceNumber>true</a:HasInvoiceNumber>
<a:IsActive>true</a:IsActive>
<a:IsDefault>false</a:IsDefault>
<a:IsPaid>false</a:IsPaid>
<a:IsReadOnly>true</a:IsReadOnly>
<a:IsSent>true</a:IsSent>
<a:IsWaitingPayment>true</a:IsWaitingPayment>
<a:Name>Skickad</a:Name>
<a:SortOrder>2</a:SortOrder>
</a:InvoiceStatus>
<a:InvoiceStatus>
<a:Description i:nil="true"/>
<a:HasInvoiceNumber>true</a:HasInvoiceNumber>
<a:IsActive>true</a:IsActive>
<a:IsDefault>false</a:IsDefault>
<a:IsPaid>true</a:IsPaid>
<a:IsReadOnly>true</a:IsReadOnly>
<a:IsSent>true</a:IsSent>
<a:IsWaitingPayment>false</a:IsWaitingPayment>
<a:Name>Betalad</a:Name><a:SortOrder>3</a:SortOrder>
</a:InvoiceStatus>
</GetAllInvoiceStatusesResult>
</GetAllInvoiceStatusesResponse>
</s:Body>
SOAPMessage。toString()返回对象id,如“SOAPMessage@123456".
您想要使用SOAPMessage.writeTo(输出流)。或者更好的是,直接转换SOAPMessage,因为它的SOAPParts已经实现了org.w3c.dom.
看起来is XML标记未正确关闭,即
我有过一次例外 使用XMLDog
我试图用Java读取一个XML文件,然后将其与XML模式进行比较,但我无法克服此错误: [致命错误]: 1:1: prolog中不允许有内容org.xml.sax.SAXParseExc0019; lineNumber: 1;柱状编号: 1; prolog中不允许有内容。 这是文件读取的开始 我通过十六进制编辑器扫描了我的XML,但是我没有在里面找到任何奇怪的字符,所以我不知道问题出在哪里 我的文
我正在尝试使用jasperreports,当我尝试运行正在开发的应用程序时,我遇到了下一个错误: 对于我写的代码: 怎么了?。谢谢。xml是这样的,我不知道出了什么问题: 再次感谢。
我目前有以下文件。 http://www.cse.unsw.edu.au/~cs9321/14s1/assignments/musicDb.xml 我的类。 } 我在另一个类中创建了一个对象并调用,但我一直收到上述错误。 有人知道问题出在哪里吗? 谢谢你的帮助。
问题内容: 我正在尝试调用Web服务,但是遇到了奇怪的行为。我们的服务器上正在运行一个Web服务,但是该代码未向我们开放,因此无法看到墙后发生了什么。该服务的所有者公开了基于Web的测试客户端UI,该UI在文本框中输入内容,并显示对测试目的的响应。此输入框采用以下提到的格式输入 它在此UI上工作正常,但是当我尝试通过Java代码调用此Web服务时,它也将获得连接以及被该服务授权,但是当我尝试调用上
我是Java服务器开发新手,我正在将用ColdFusion编写的web应用程序转换为Glassfish 4上的Java EE web应用程序。这个应用程序很重JSP(最好使用servlet)。这是故意的,不是我的决定。 错误是: org.apache.jasper.JasperException: 空:组织。xml。萨克斯。SAXParseException; 这几个JSP似乎不接受taglib引