Java怎么实现wsdl发送xml

Python012

Java怎么实现wsdl发送xml,第1张

步骤如下:

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

完成