java如何调用webservice接口?

Python076

java如何调用webservice接口?,第1张

Java通过WSDL文件来调用webservice直接调用模式如下:

import java.util.Date

import java.text.DateFormat

import org.apache.axis.client.Call

import org.apache.axis.client.Service

import javax.xml.namespace.QName

import java.lang.Integer

import javax.xml.rpc.ParameterMode

public class caClient {

public static void main(String[] args) {

try {

String endpoint = "http://localhost:8080/ca3/services/caSynrochnized?wsdl"

//直接引用远程的wsdl文件

//以下都是套路

Service service = new Service()

Call call = (Call) service.createCall()

call.setTargetEndpointAddress(endpoint)

call.setOperationName("addUser")//WSDL里面描述的接口名称

call.addParameter("userName", org.apache.axis.encoding.XMLType.XSD_DATE,

javax.xml.rpc.ParameterMode.IN)//接口的参数

call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING)//设置返回类型

String temp = "测试人员"

String result = (String)call.invoke(new Object[]{temp})

//给方法传递参数,并且调用方法

System.out.println("result is "+result)

}

catch (Exception e) {

System.err.println(e.toString())

}

}

}

1.打开webService链接,右键属性—》证书—》详细信息—》复制到文件,保存cer格式的文件。

2. 复制下面的cmd命令,执行keytool命令,生成keystore文件,例如

c:\nciic.keystore

keytool -import -alias nciic -file c:\jswszx.cer -keystore c:\nciic.keystore

它会提示输入密码,随便输入,例如:123456,回车

4.他会提示是否信任这个认证,输入Y,回车,指定目录下就会生成nciic.keystore文件

它会提示输入密码,随便输入,例如:123456,回车

4.他会提示是否信任这个认证,输入Y,回车,指定目录下就会生成nciic.keystore文件

5.修改Java代码

在调用接口方法之前,添加如下代码:

System.setProperty("javax.NET.ssl.trustStore","c://nciic.keystore")System.setProperty("java.protocol.handler.pkgs","com.sun.Net.ssl.internal.www.protocol")

java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider())

WebService可以有Get、 Post、Soap、Document四种方式调用,以下Java通过post方式调用WebService代码:

import java.io.BufferedReader

import java.io.IOException

import java.io.InputStream

import java.io.InputStreamReader

import java.io.OutputStream

import java.io.OutputStreamWriter

import java.net.URL

import java.net.URLConnection

import java.net.URLEncoder

import org.apache.cxf.endpoint.Client

import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory

/**

 * 功能描述:WebService调用

 * 

 */

public class ClientTest {

 /**

  * 功能描述:HTTP-POST

  * 

  */

 public String post() {

  OutputStreamWriter out = null

  StringBuilder sTotalString = new StringBuilder()

  try {

   URL urlTemp = new URL(

     "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity")

   URLConnection connection = urlTemp.openConnection()

   connection.setDoOutput(true)

   out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8")

   StringBuffer sb = new StringBuffer()

   sb.append("byProvinceName=福建")

   out.write(sb.toString())

   out.flush()

   String sCurrentLine

   sCurrentLine = ""

   InputStream l_urlStream

   l_urlStream = connection.getInputStream()// 请求

   BufferedReader l_reader = new BufferedReader(new InputStreamReader(

     l_urlStream))

   while ((sCurrentLine = l_reader.readLine()) != null) {

    sTotalString.append(sCurrentLine)

   }

  } catch (Exception e) {

   e.printStackTrace()

  } finally {

   if (null != out) {

    try {

     out.close()

    } catch (IOException e) {

     e.printStackTrace()

    }

   }

  }

  return sTotalString.toString()

 }

}