我昨天发布了这个问题:How to go about creating SOAP webservice in Java并在阅读完本书之后:http://www.packtpub.com/java-7-jax-ws-web-services/book我设法创建了一个JAX-WS应用程序:
package hellows;
import javax.jws.*;
@WebService(portName = "HelloWSPort", serviceName = "HelloWSService", targetNamespace = "http://hellows/", endpointInterface = "hellows.HelloWS")
public class HelloWSImpl implements HelloWS {
public String hello(String name) {
// replace with your impl here
return "Hello "+name +" Welcome to Web Services!";
}
}
一切都很好。但我需要的是服务方法(即"你好")应该代替" string"接受描述学生详细信息的XML文件(我已经更改了原始文件):
<?STU version="1.0"?>
<stu>
<id sequence="1">2354282</id>
<date>2012-06-17T21:19:15</date>
<student interest="food" status="newadmission">
<id></id>
<birthyear>2012</birthyear>
<sex>Male</sex>
<address>Sonata</address>
<class>3</class>
</student>
</stu>
然后服务将处理它并返回一个包含标志的Java对象&#34;传递&#34; /&#34;失败&#34;基于一些算法。
所以我的问题是:
答案 0 :(得分:0)
我使用AXIS2做了类似的事情。所以,我的答案可能会给你一些希望:)
在 services.xml 文件中:
以hello
类的类型为messageReceiver
org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver
操作
<operation name="hello">
<messageReceiver class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
</operation>
然后,您可以在hello
方法中处理传入的XML元素。
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.xpath.AXIOMXPath;
import org.jaxen.JaxenException;
public String hello(OMElement xmlElement) {
try {
AXIOMXPath someXPath = new AXIOMXPath("//root/child");
String str = ((OMElement)someXPath.selectSingleNode(node)).getText();
} catch (JaxenException e) {
e.printStackTrace();
}
}