1.下载AXIS2类库,AXIS2是目前java调用webservice的一个主要方法(由于更新较频繁,请自行google该类库的网址)
2.由于是第三方webservice,直接引入AXIS2的包就可以
代码如下:
import java.rmi.RemoteException
import javax.xml.rpc.ParameterMode
import javax.xml.rpc.ServiceException
import org.apache.axis.client.Call
import org.apache.axis.client.Service
import org.apache.axis.encoding.XMLType
public class webServiceTest {
public String invokeRemoteFuc() {
String endpoint = "http://localhost:8080/webservice/services/helloworld"
String result = "no result!"
Service service = new Service()//新建一个service
Call call
Object[] object = new Object[1]
object[0] = "Dear I miss you"//Object是用来存储方法的参数
try {
call = (Call) service.createCall()
call.setTargetEndpointAddress(endpoint)// 远程调用路径
call.setOperationName("say")// 调用的方法名
// 设置参数名:
call.addParameter("str1", // 参数名
XMLType.XSD_STRING,// 参数类型:String
ParameterMode.IN)// 参数模式:'IN' or 'OUT'
// 设置返回值类型:
call.setReturnType(XMLType.XSD_STRING)// 返回值类型:String
result = (String) call.invoke(object)// 远程调用
} catch (ServiceException e) {
e.printStackTrace()
} catch (RemoteException e) {
e.printStackTrace()
}
return result//返回值
}
public static void main(String[] args) {
webServiceTest t = new webServiceTest()
String result = t.invokeRemoteFuc()
System.out.println(result)//输出
}
}
通过AXIS2封装好的类设置URL和参数,直接调用。
用Apache的HttpClient包。
通过新建HttpGet实现get方式访问。下面的代码需要HttpClient4.3版本
DefaultHttpClient dhc=new DefaultHttpClient()String url = "
http://192.168.1.50:1000/sql_query?p=<book>bookname</book
>"
url=URLEncoder.encode(url, "utf-8")
HttpGet get=new HttpGet(url)
CloseableHttpResponse res = dhc.execute(get)
String content=EntityUtils.toString(res.getEntity())
System.out.println(content)
你这是Socket编程。后台可以将xml文件读取称一个map集合。
然后,将map发送到客户端
客户端读取到map。
根据map来生成xml
完成