找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 15167|回复: 7

[求助] NC56 调用外部的 WebService 的问题

[复制链接]
发表于 2010-12-9 18:53:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×
本帖最后由 dinxin 于 2010-12-10 09:29 编辑

在NC56 调用外部的 WebService 出现问题,求各位大侠帮忙解决一下.NC Client 端调用代码(红皮书介绍的调用方式):
   
org.apache.axis.client.Service service = new Service();
String endpoint = "http://localhost:1963/SyncWebService.asmx";
webServiceCall = (Call)service.createCall();
webServiceCall.setTargetEndpointAddress( new java.net.URL(endpoint) );
webServiceCall.setOperationName(new QName("http://NCSyncWebService/", ISyncFunctions.CheckAssetBillIsExists));
webServiceCall.setSOAPActionURI("http://NCSyncWebService/"+ISyncFunctions.CheckAssetBillIsExists);
webServiceCall.addParameter(new QName("http://NCSyncWebService/","billcode"), org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
webServiceCall.addParameter(new QName("http://NCSyncWebService/","pk_corp"), org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
String result = (String) webServiceCall.invoke( new Object[] {"111111","1002"} );


在56中看到有 axis 的包
2.jpg 3.jpg 1.jpg

在debug环境下调用正常,在nchome下直接启动的方式调用就报错误:ClassNotFoundException: org.apache.axis.client.Service
检查了本地NC缓存中已经下载 axis.jar 的包,但还是报找不到Service, 不解,错误详细:


Exception in thread "AWT-EventQueue-2" java.lang.NoClassDefFoundError: org/apache/axis/client/Service
        at nc.ui.fa.application.inventory.ext.TakingCAFuncMenuExt.getWebServiceCall(TakingCAFuncMenuExt.java:63)
        at nc.ui.fa.application.inventory.ext.TakingCAFuncMenuExt.downloadData(TakingCAFuncMenuExt.java:200)
        at nc.ui.fa.application.inventory.ext.TakingCAFuncMenuExt.doExtendsAction(TakingCAFuncMenuExt.java:145)
        at nc.ui.pub.ToftPanel.handleButtonEvent(ToftPanel.java:196)
        at nc.ui.pub.FramePanel.dispatchButtonEvent(FramePanel.java:360)
        at nc.ui.pub.FramePanel.access$300(FramePanel.java:69)
        at nc.ui.pub.FramePanel$ButtonHandler.buttonClicked(FramePanel.java:227)
        at nc.ui.pub.ButtonBar.firePostEvent(ButtonBar.java:352)
        at nc.ui.pub.ButtonBar$1.run(ButtonBar.java:217)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
 楼主| 发表于 2010-12-10 09:31:04 | 显示全部楼层
发表于 2010-12-24 10:24:34 | 显示全部楼层
//--试试这个
package nc.webservice.huatai;

import java.net.MalformedURLException;
import java.rmi.RemoteException;

import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

/**
* NC调用 WebService
*
* @author Chen deyin
*
*/
public class Nc2HuaTaiWerbservice {

        public static void main(String[] args) throws ServiceException,
                        MalformedURLException, RemoteException {
                // 解决代理
                System.setProperty("http.proxyHost", "10.10.66.12");
                System.setProperty("http.proxyPort", "8080");

                // 华泰WebService URL
                String url = "http://219.141.242.4/ITWeb/WebServices/HR/HRWebService.asmx?WSDL";
                Service service = new Service();
                Call call = (Call) service.createCall();
                call.setTargetEndpointAddress(new java.net.URL(url));

                // 设置要远程调用的方法 http://ehuatai.com/是wsdl中definitions根节点的targetNamespace属性值
                // DepartmentAdd为要调用的方法名
                call
                                .setOperationName(new QName("http://ehuatai.com/",
                                                "DepartmentAdd"));

                // 该方法需要3个参数
                call.addParameter("departmentId",
                                org.apache.axis.encoding.XMLType.XSD_STRING,
                                javax.xml.rpc.ParameterMode.IN);
                call.addParameter("departmentName",
                                org.apache.axis.encoding.XMLType.XSD_STRING,
                                javax.xml.rpc.ParameterMode.IN);
                call.addParameter("parentId",
                                org.apache.axis.encoding.XMLType.XSD_STRING,
                                javax.xml.rpc.ParameterMode.IN);

                // 方法的返回值类型
                call.setReturnType(org.apache.axis.encoding.XMLType.XSD_INTEGER);

                try {
                        Integer rs = (Integer) call.invoke(new Object[]{"1002", "财务一部",
                                        "1001"});
                        System.out.println(rs);
                } catch (Exception e) {
                        e.printStackTrace();
                }

        }
}
发表于 2012-10-11 10:22:03 | 显示全部楼层
回复 点赞 拍砖

使用道具 举报

发表于 2020-6-10 12:04:55 | 显示全部楼层
谢谢 谢谢 谢谢 谢谢 谢谢 谢谢
回复 点赞 拍砖

使用道具 举报

发表于 2020-6-10 18:03:05 | 显示全部楼层

好东西,谢谢分享
回复 点赞 拍砖

使用道具 举报

发表于 2021-11-10 08:19:22 | 显示全部楼层
回复 点赞 拍砖

使用道具 举报

发表于 2021-12-12 14:08:05 | 显示全部楼层
回复 点赞 拍砖

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-11-16 21:01 , Processed in 0.065148 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表