各位好,小弟写了一个方法C,方法C的作用就是new service();用call类方法去调用另外一个webservice接口back。现在的问题是,如果在myeclipse上运行方法c,能够执行,并返回接口back的数据。但是我把方法c 用axis2+tomcat6 发布之后,直接在地址栏中输入的话,提示内部服务器错误,这是怎么回事。请指教,谢谢!
解决方案 »
- 谁跟我说说 this 引用 调用 自己的静态方法有啥问题?
- [百度分享]javascript 函数使用分析
- 图片提交到服务器的路径问题
- 有没有简单的java bt 客户端
- 高难度的数组变换的问题
- 请教一个关于InputStream.Read()的问题
- 这个程序怎么了?各位帮帮忙,作业急!
- 为什么我的 com.sun.awt.AWTUtilities.setWindowOpacity(this, 0.5f);这个函数一直有红线
- 使用PreparedStatement向表插入数据的时候,如果一个字段是自动增长的,应该怎么办呀???
- 可以提高千倍效率的Java代码小技巧
- 各位! 哪里有ireport3.6.2的使用教程啊??
- java类的序列化问题
import * // 包含相应包public class GetDeptInfoService{
//createsoapXMLIN 产生个xml格式的文本,供getinfomatiom 调用
public static String createsoapXMLIN(Map<String,String> params){
if(params.isEmpty())
{
return null;
}
else{
String xmlIn = "";
xmlIn = "<?xml version =\"1.0\" encoding=\"UTF-8"\?><DBSET><R>";
Iterator it = params.keySet().iterator();
while(it.hasNext()){
String keyName = it.next().toString();
xmlIn += "<C N=\""+keyName+"\">"+params.get(keyName).toString()+"</C>";
}
xmlIn +="</R></DBSET>"
return xmlIn;
}
} //getinfomatiom 需要传入参数number,去访问服务接口,将返回的数据保留
//主要就是这个方法出现问题,同时还有一个方法back,就是简单的返回字符串hello,这个是可以用的
public static OMElement getinfomatiom(OMElement number){
OMElement noElement = number.getFirstElement();
String no = noElement.getText(); String res="";
try{
//此处是访问服务接口 xxxxx ,同时需要认证,用call.invoke()返回数据
String url="xxxxx",username="dddd",password="tttt";
Service service=new Service();
Call call=(Call) service.creatCall();
call.setTargetEndpointAddress(new java.net.URL(url));
call.addHeader(new SOAPHeaderElement("Authorization","username",username));
call.addHeader(new SOAPHeaderElement("Authorization","password",password));
call.setOperationName("invoke");
Map<String,String> map= new HashMap<String,String>();
map.put("ORG_NO",no);
res=call.invoke(new Object[]{
"ee/kk/service",//服务端请求地址
"getInfo",//对应服务名称
GetDeptInfoService.createsoapXMLIN(map)});//xml格式传输参数no
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace(
"http://getinfomation.com", "getInfo");
OMElement method = fac.createOMElement("getinfomatiom", omNs);
method.setText(res);
return method;
}
catch(Eception e){
return null;
}
finally{}
}}tomcat和axis2
这个是我写的服务端代码,需要把getinfomatiom()方法做出webservice方法,我在工程下的bin文件夹中找到GetDeptInfoService.class 文件,同时建立了个service.xml 文件,通过打包成.aar 的格式放在service目录下,在本地浏览器中http://localhost:8080/axis2/servces/listServices 中可以看到有GetDeptInfoService ,但是用客户端调用时,找不到方法。直接在地址栏中访问也是无法显示网页,应该是我发布有问题。请指教下,该如何正确发布,同时帮忙看下,我的服务端class是否正确,谢谢。
同时,对服务端方法进行逐一排除,当把new Service()那块注销掉后,修改下返回内容为输入参数,可以正常运行。
所以,我觉得是不是 new Service()那块代码有错,不能在webservice 方法中使用?请哪位大侠指点下,不甚感激