axis2开发的webservice可以直接返回字符串吗
最近使用axis2发布webservice,以前也没注意到这个问题,就是有的时候想直接返回一个字符串,但是在浏览器敲入地址显示出来的却是xml如下所示。
自己就想直接返回一个字符串,也省了解析xml的工作,下面是我用HTTPConnection调用webservice的代码。
希望给我能给我一个解决办法,先在这里谢谢大家。
<ns:getVersionResponse><ns:return>Hi - the Axis2 version is 1.6.2</ns:return></ns:getVersionResponse>自己就想直接返回一个字符串,也省了解析xml的工作,下面是我用HTTPConnection调用webservice的代码。
package com.tsp.webservice;
import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.*;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import javax.imageio.ImageIO;
import org.dom4j.*;
public class TestService {
public static void main(String args[]) throws Exception {
Map<String, String> m = new HashMap<String, String>();
try {
System.out.println(loginCheck(m));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static String loginCheck(Map<String, String> parameter)
throws Exception {
// 拼接参数,这里最好使用StringBuilder
// StringBuilder builder = new StringBuilder();
// for (Map.Entry<String, String> entry : parameter.entrySet()) {
// // 这里的参数需要编码
// builder.append(entry.getKey() + "=").append(
// URLEncoder.encode(entry.getValue(), "UTF-8") + "&");
//
// }
// // 除去多余的&
// builder.deleteCharAt(builder.length() - 1);
// System.out.println(builder.toString());
// byte[] b2 = builder.toString().getBytes();
// 封装数据,数据以byte方式传输
// byte[] b = builder.toString().getBytes();
// 需要请求的连接
URL url = new URL(
"http://localhost:8080/axis2/services/Version/getVersion");
// 打开连接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 设置请求方式和消息头以及超时时间
conn.setRequestMethod("POST");
conn.setConnectTimeout(10000);
// 设置是否允许对外输出数据
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(0));
// conn.setRequestProperty("Content-Length", "0");
// OutputStream outPut = conn.getOutputStream();
//
// outPut.write(b);
//
// outPut.close();
// 判断请求是否成功
if (conn.getResponseCode() == 200) {
InputStream in=conn.getInputStream();
byte[] b2=new byte[1024];
int len=0;
int temp=0;
while((temp=in.read())!=-1){
b2[len]=(byte)temp;
len++;
}
String str=new String(b2,0,len);
return str;
} else {
return "Err";
}
}
}
希望给我能给我一个解决办法,先在这里谢谢大家。
...全文
相关推荐
axis2;WebService
**创建WebService服务器端**: - 创建一个简单的Java类,如`HelloWorldService`,提供两个方法:`sayHello`接收一个字符串参数并返回一个带有问候的字符串,`getAge
axis2 WebService 开发指南(中文版).docx
- `sayHello`方法接收一个名字并返回带有问候的字符串,而`getAge`方法接受一个整数并返回一个随机增加的年龄。3.
Axis2+tomcat6+eclipse 之helloworld
此类中包含一个方法`sayHello(String name)`,该方法接受一个字符串参数并返回带有问候语的字符串。
axis实例WebService服务
2. **创建Java类**:首先,编写一个简单的Java类,该类包含你需要公开的方法。例如,我们可以创建一个名为`HelloWorld`的类,其中有一个方法`sayHello`返回一个字符串。
Axis2 WebService 开发指南 技术文档 入门文档
在sayHello方法中,接收一个字符串参数并返回带有问候语的消息;getAge方法接收一个整数,返回一个随机年龄。注意,服务类需包含 Axis2 所需的注解或接口,以标记为Web服务。


