搭建工程前文以及介绍
1..........................创建POJO类User.java
package ObjectInterface; public class User { private String username; private String phoneNO; private int age; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPhoneNO() { return phoneNO; } public void setPhoneNO(String phoneNO) { this.phoneNO = phoneNO; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
2......................创建接口文件
package ObjectInterface; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; @WebService public interface GetUserInfo { @WebMethod //封装对象 public User getUserInfo(@WebParam(name="username")String username); //封装Document数据,返回XML字符串 public String XMLInfo() throws Exception; }
3.......................创建实现类
package ObjectInterface; import org.jdom.Document; import org.jdom.Element; import util.OperationXMLByJdom; public class GetUserInfoImp implements GetUserInfo { //封装对象 public User getUserInfo(String username) { User user = new User(); user.setUsername(username); user.setAge(100); user.setPhoneNO("1234567"); return user; } //封装Document数据,返回XML字符串 public String XMLInfo() throws Exception { // 创建根节点 list; Element root = new Element("list"); // 根节点添加到文档中; Document Doc = new Document(root); // 此处 for 循环可替换成 遍历 数据库表的结果集操作; for (int i = 0; i < 5; i++) { // 创建节点 user; Element elements = new Element("user"); // 给 user 节点添加属性 id; elements.setAttribute("id","" + i); // 给 user 节点添加子节点并赋值; // new Element("name")中的 "name" 替换成表中相应字段,setText("xuehui")中 "xuehui // 替换成表中记录值; elements.addContent(new Element("name").setText("xuehui")); elements.addContent(new Element("age").setText("28")); elements.addContent(new Element("sex").setText("Male")); // 给父节点list添加user子节点; root.addContent(elements); } OperationXMLByJdom xml2String = new OperationXMLByJdom(); String xmlDoc = xml2String.doc2String(Doc); return xmlDoc; } }
(上文用到的OperationXMLByJdom)
3.....................................OperationXMLByJdom
package util; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileWriter; import java.io.StringReader; import org.jdom.Document; import org.jdom.input.SAXBuilder; import org.jdom.output.Format; import org.jdom.output.XMLOutputter; public class OperationXMLByJdom { /** * DOCUMENT格式化输出保存为XML * * @param doc JDOM的Document * @param filePath 输出文件路径 * @throws Exception */ public static void doc2XML(Document doc,String filePath) throws Exception{ Format format = Format.getCompactFormat(); format.setEncoding("UTF-8"); //设置XML文件的字符为UTF-8 format.setIndent(" ");//设置缩进 XMLOutputter outputter = new XMLOutputter(format);//定义输出,在元素后换行,每一层元素缩排四格 FileWriter writer = new FileWriter(filePath);//输出流 outputter.output(doc,writer); writer.close(); } /** * 字符串转换为DOCUMENT * * @param xmlStr 字符串 * @return doc JDOM的Document * @throws Exception */ public static Document string2Doc(String xmlStr) throws Exception { java.io.Reader in = new StringReader(xmlStr); Document doc = (new SAXBuilder()).build(in); return doc; } /** * Document转换为字符串 * * @param xmlFilePath XML文件路径 * @return xmlStr 字符串 * @throws Exception */ public static String doc2String(Document doc) throws Exception { Format format = Format.getPrettyFormat(); format.setEncoding("UTF-8");// 设置xml文件的字符为UTF-8,解决中文问题 XMLOutputter xmlout = new XMLOutputter(format); ByteArrayOutputStream bo = new ByteArrayOutputStream(); xmlout.output(doc,bo); return bo.toString(); } /** * XML转换为Document * * @param xmlFilePath XML文件路径 * @return doc Document对象 * @throws Exception */ public static Document xml2Doc(String xmlFilePath) throws Exception { File file = new File(xmlFilePath); return (new SAXBuilder()).build(file); } }
5..............................发布接口
<!-- 发布对象类型接口 --> <jaxws:server id="GetUserInfo" serviceClass="ObjectInterface.GetUserInfo" address="/GetUserInfo"> <jaxws:serviceBean> <ref bean="userInfo" /> </jaxws:serviceBean> </jaxws:server>
<bean id="userServiceBean" class="com.ComplexUserService" /> <bean id="userInfo" class="ObjectInterface.GetUserInfoImp"></bean>
6.............................直接启动服务器就Ok了 查看一下WSDL文件
这里不再进行客户端验证了
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。