这代码是不是有问题?

C996387762 2019-01-23 05:46:30
public class Test2 {
public String getCurrentData(string aCode,string bCode){
String url = "http://bdlj/Servicfirst?wsdl";
Client client = new Client(new URL(url));
Object[] retunObjs = null;
retunObjs = client.invoke("getCurrentData", new Object[] {"HRD_a","HRD_b"});//a编号150102283,b编号150200042
System.out.println(retunObjs[0].toString());
}
}
}
...全文
812 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuan.ye 2019-02-15
  • 打赏
  • 举报
回复
https://howtodoinjava.com/spring-boot/spring-soap-client-webservicetemplate/

LZ 替你找了一个完整的DEMO,从服务器到客户端都有。
xuan.ye 2019-02-15
  • 打赏
  • 举报
回复
个人觉得 "org.springframework.web.client.RestTemplate" 这个比较好用。


import java.util.HashSet;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;

import com.fasterxml.jackson.core.JsonProcessingException;

@Service
public class CustomRestTemplate extends RestTemplate {

private final Logger logger = LoggerFactory.getLogger(CustomRestTemplate.class);

@Autowired
CommonProperties commonProperties;

@Autowired
RestTemplate restTemplate;

/**
* 提交服务器
*
* @param uri 地址
* @param map 头部
* @param hashMap 表单参数
* @return
* @throws JsonProcessingException
*/
public String custom_postForObject(String uri, Map<String, String> map) throws JsonProcessingException {

HttpHeaders header = new HttpHeaders();
MediaType mediaType = MediaType.parseMediaType("application/json;charset=utf-8");
header.setContentType(mediaType);
header.add("Accept", MediaType.APPLICATION_JSON_UTF8.toString());

// 1、URL地址
String url = commonProperties.getPhp_root() + uri;
if (map != null) {

Set<String> set = new HashSet<String>();
for(Entry<String, String> item:map.entrySet())
set.add(item.getKey()+"="+item.getValue());

url = url +"?"+ StringUtils.join(set,"&");
}

// 2、提交
String result = "";
try{
result = restTemplate.postForObject(url, null, String.class);
}
catch(Exception ex)
{
logger.error(ex.getMessage() + ";url:"+ url);
}

return result;
}

/**
* 提交服务器
*
* @param uri 地址
* @param headerParams 头部
* @param bodyJsonParams 表单参数
* @return
* @throws JsonProcessingException
*/
public String custom_postForm(String uri, Map<String, String> headerParams, Map<String, String> bodyFormParams) throws JsonProcessingException {


// 1、URL地址
String url = commonProperties.getPhp_root() + uri;
if (headerParams != null) {

Set<String> set = new HashSet<String>();
for(Entry<String,String> item:headerParams.entrySet())
set.add(item.getKey()+"="+item.getValue());

url = url +"?"+ StringUtils.join(set,"&");
}

// 2、Header
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);

// 3、Body
MultiValueMap<String, String> body= new LinkedMultiValueMap<String, String>();
for(Entry<String,String> item:bodyFormParams.entrySet())
body.add(item.getKey(), item.getValue());

HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<MultiValueMap<String, String>>(body, headers);
String data ="";
try
{
ResponseEntity<String> response = restTemplate.postForEntity( url, request , String.class );
data = response.getBody();
}
catch(Exception ex)
{
logger.error(ex.getMessage());
}

return data;
}

/**
* 提交服务器
*
* @param uri 地址
* @param headerParams 头部
* @param bodyJsonParams 表单参数
* @return
* @throws JsonProcessingException
*/
public String custom_postForObject(String uri, Map<String, String> headerParams, String bodyJsonParams) throws JsonProcessingException {

HttpHeaders header = new HttpHeaders();
MediaType mediaType = MediaType.parseMediaType("application/json;charset=utf-8");
header.setContentType(mediaType);
header.add("Accept", MediaType.APPLICATION_JSON_UTF8.toString());

// 1、URL地址
String url = commonProperties.getPhp_root() + uri;
if (headerParams != null) {

Set<String> set = new HashSet<String>();
for(Entry<String,String> item:headerParams.entrySet())
set.add(item.getKey()+"="+item.getValue());

url = url +"?"+ StringUtils.join(set,"&");
}

// 1、Form
HttpEntity<String> formEntity = new HttpEntity<String>("",header);
if (bodyJsonParams != null && bodyJsonParams.equals("")==false) {

formEntity = new HttpEntity<String>(bodyJsonParams,header);
}

// 2、提交
String result = "";
try {
result = restTemplate.postForObject(url, formEntity, String.class);
}
catch(Exception ex)
{
logger.error(ex.getMessage());
}

return result;
}
}
angel6709 2019-02-15
  • 打赏
  • 举报
回复
where is RETURN
  • 打赏
  • 举报
回复
public String getCurrentData(string aCode,string bCode){

参数string的s没大写,没有return值

其他代码没有问题
toilerchen 2019-02-13
  • 打赏
  • 举报
回复
debug一次就知道有没有问题
C996387762 2019-01-28
  • 打赏
  • 举报
回复
引用 4 楼 INSISTING2018 的回复:
之前写的一个cxf的调用WebService接口的demo,参考下

JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();
//通过wsdl服务描述文件创建客户端工厂。
Client client = factory.createClient("http://172.18.48.150:8080/WebServicePro/service/HelloWorldService?wsdl");
//invoke(
//String operationName:要调用的方法名
//Object... params):方法的入参。可以是多个。
Document document = DocumentHelper.createDocument();
Element root = document.addElement("root");
Element child = root.addElement("child");
child.setText("我是兒子!");
String xmlString = document.asXML();
Object[] objs = client.invoke("sayHello", xmlString);
//invoke方法是默认返回Object[]数组。取出数组的第一位值得值就是返回值。
System.out.println(objs[0].toString());


都改了myeclipse就是通不过
万能蓝 2019-01-24
  • 打赏
  • 举报
回复
运行一把不就知道了
INSISTING2018 2019-01-24
  • 打赏
  • 举报
回复
之前写的一个cxf的调用WebService接口的demo,参考下

JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();
//通过wsdl服务描述文件创建客户端工厂。
Client client = factory.createClient("http://172.18.48.150:8080/WebServicePro/service/HelloWorldService?wsdl");
//invoke(
//String operationName:要调用的方法名
//Object... params):方法的入参。可以是多个。
Document document = DocumentHelper.createDocument();
Element root = document.addElement("root");
Element child = root.addElement("child");
child.setText("我是兒子!");
String xmlString = document.asXML();
Object[] objs = client.invoke("sayHello", xmlString);
//invoke方法是默认返回Object[]数组。取出数组的第一位值得值就是返回值。
System.out.println(objs[0].toString());
十八道胡同 2019-01-23
  • 打赏
  • 举报
回复
没返回你要的结果吗?
DF10F-0001A 2019-01-23
  • 打赏
  • 举报
回复
反问:你觉得应该有什么问题

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧