Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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 将am XML文件传递给web服务_Java_Xml_Web Services_Url_Soap - Fatal编程技术网

Java 将am XML文件传递给web服务

Java 将am XML文件传递给web服务,java,xml,web-services,url,soap,Java,Xml,Web Services,Url,Soap,我一直在一个JAX-WS服务器上工作。我让服务器和客户端都在运行,并做了一些字符串测试,以确保正确设置它们。我想开始通过URL将.XML文件传递给另一个Web服务。我想从我的目录中提取XML文件,如果它经过身份验证,则从另一台服务器获得响应。我对整个soap概念还不熟悉,我正试图对它了如指掌。我可以通过JAX-WS进行HTTP/URL调用,还是完全偏离了轨道 [WebMethod] public void ProcessXMLFile(XmlDocument doc) { ///

我一直在一个JAX-WS服务器上工作。我让服务器和客户端都在运行,并做了一些字符串测试,以确保正确设置它们。我想开始通过URL将.XML文件传递给另一个Web服务。我想从我的目录中提取XML文件,如果它经过身份验证,则从另一台服务器获得响应。我对整个soap概念还不熟悉,我正试图对它了如指掌。我可以通过JAX-WS进行HTTP/URL调用,还是完全偏离了轨道

[WebMethod]

public void ProcessXMLFile(XmlDocument doc)
{

      /// process doc as a local variable
}

Then in the call to do the following

XmlDocument doc = new XmlDocument();
doc.Load("C:\\Users\Me\xmlfile.xml");
/// Call to web service:
publicwebservice.ProcessXMLFile(doc);
这就是我用伪代码类型的方式来思考它的方式。如果有人知道有任何其他教程可以帮助我将XML文件传递到web服务并接收响应?

通过SOAP发送XML 你通常有两个选择

Base64是字符串的另一端,un-Base64是另一端…

或者转义要发送的XML。这将<变成
并>变成
>
; StringEscapeUtils()有一个转义XML的方法


如果您想让第二个选项保持可读性,通常选择第二个选项

您需要一个soap客户端。下面是Java示例:@djb与JAX-WS相同,对吗?我已经在进行从JAX客户机到服务器的soap调用,反之亦然。好的,您遇到了什么问题?@djb我很好奇我是否可以将一个.XML文件传递到另一台服务器。或者如果我偏离了轨道,那么JAX-WS不是我想要的,对吗?因为它在客户机和服务器之间执行soap调用,而不是在服务器和服务器之间执行服务器调用?你认为我应该从哪里开始,或者我应该用什么来开始?另外,我在哪里可以找到“将xml文件发送到url服务器”的示例。非常感谢。您确实需要JAXWS来生成服务器和客户端代码。XML字段只是一个字符串。通常,您从创建XSD和WSDL开始。然后使用JAXWS从这两个文件自动生成服务器和客户端。在您的情况下,看起来您有一个客户机、一个中间人服务和一个最终服务。因此,中间人服务既是服务器又是客户机。当它收到消息(作为服务器)时,它调用另一个服务器(作为客户端)。实际上,您并不是通过SOAP发送文件——您可以发送文件的内容,在这种情况下,您必须在我提到的两种方法之间做出选择
byte[] encodedBytes = Base64.encodeBase64("Test".getBytes());
System.out.println("encodedBytes " + new String(encodedBytes));

byte[] decodedBytes = Base64.decodeBase64(encodedBytes);
System.out.println("decodedBytes " + new String(decodedBytes));