`
zr615zr
  • 浏览: 13551 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

Eclipse下使用Axis开发webservice

 
阅读更多

Eclipse下使用Axis开发webservice
2010年01月21日
  
1.     将axis下的server-config.wsdd拷贝到myeclipse的web project的WEB-INF下。
  2.     导入第三方包到工程下的lib目录
  
  
  
  1.2.       设定servlet控制器修改WEB-INF下的web.xml文件,添加以下内容:
  
  
  
  
  
  
  
  
      AxisServlet
  
  
  
  
  
  org.apache.axis.transport.http.AxisServlet
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
      SOAPMonitorService
  
  
  
  
  
  org.apache.axis.monitor.SOAPMonitorService
  
  
  
  
  
     
  
  
  
  
  
        SOAPMonitorPort
  
  
  
  
  
        5001
  
  
  
  
  
     
  
  
  
  
  
      100
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
      AxisServlet
  
  
  
  
  
     /servlet/AxisServlet
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
      AxisServlet
  
  
  
  
  
      *.jws
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
      AxisServlet
  
  
  
  
  
      /services/*
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
      AxisServlet
  
  
  
  
  
      /ws/*
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
      SOAPMonitorService
  
  
  
  
  
      /SOAPMonitor
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
      wsdl
  
  
  
  
  
       text/xml
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
      xsd
  
  
  
  
  
      text/xml
  
  
  
  
  
  
  
  
  
  1.3.       添加要发布的服务添加要发布的服务到server-config.wsdd。如:
  
  
  
  
  
  
  
  
          com.xxxxx.ws
  
  
  
  
  
         
  
  
  
  
  
         
  
  
  
  
  
         
  
  
  
  
  
         
  
  
  
  
  
  
  
  
  
  1.4.       使用java2wsdl生成wsdl用axis的java2wsdl类来生成wsServerTest.wsdl:
  选择项目,选择或者填入main函数org.apache.axis.wsdl.Java2WSDL
  在run的程序参数设置为:
  -o wsServerTest.wsdl
  -l "http://localhost:8080/myproject/services/wsServerTest"
  -n "urn:wsServerTest"
  -p"com.xxxxx.ws.server" "urn:wsServerTest"
  com.xxxxx.ws.server.ServerTestFacade
  1.5.       使用wsdl2java生成stub用axis的wsdl2java来生成stub:
  选择项目,选择或者填入main函数org.apache.axis.wsdl.WSDL2Java
  在run的程序参数设置为:
  D:\program\Eclipse3.2\wsSeverTest\wsServerTest.wsdl -t -p com.xxxxx.ws.client
  1.6.       客户端测试如果是安全通道,将client.keystore和client.truststore放到wsClientTest工程下。在vm 参数设定:
  -Djavax.net.ssl.keyStore=D:\program\Eclipse3.2\wsClientTest\client.keystore
  -Djavax.net.ssl.keyStorePassword=changeit
  -Djavax.net.ssl.trustStore=D:\program\Eclipse3.2\wsClientTest\client.truststore
  将url改为https:localhost:8443/myproject/services/wsServerTest来调用发布的函数。
  ***********************************************************************
  File->New->Project->Plug-in development的Plug-in project->Next,填写Project名,Next, 填写内容,Next,选择Create plug-in using one of the templates,选择Hello,World,Finish。
    
    在视图可看到plugin.xml,在里加上运行调用Web Service所需jar包。内容如下:
    
    
    
    
    
       
    id="colimas_plugin"
    
    name="Colimas_plugin Plug-in"
    
    version="1.0.0"
    
    provider-name="nova"
    
    class="colimas_plugin.Colimas_pluginPlugin">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
       
    point="org.eclipse.ui.actionSets">
    
      
    label="Sample Action Set"
    
    visible="true"
    
    id="colimas_plugin.actionSet">
    
       
    label="Sample &Menu"
    
    id="sampleMenu">
    
       
    name="sampleGroup">
    
    
    
    
    
      
    label="&Sample Action"
    
    icon="icons/sample.gif"
    
    class="colimas_plugin.actions.SampleAction"
    
    tooltip="Hello, Eclipse world"
    
    menubarPath="sampleMenu/sampleGroup"
    
    toolbarPath="sampleGroup"
    
    id="colimas_plugin.actions.SampleAction">
    
    
    
    
    
    
    
    2 建立调用Web Service类,该类实现调用Axis的WebService
    
    /*
    
    *
    
    Created on 2005/07/30
    
    *
    
    * TODO To change the template for this generated file go to
    
    * Window - Preferences - Java - Code Style - Code Templates
    
    */package com.nova.colimas.plugin.eclipse;
    
    import org.apache.axis.client.Call;
    
    import org.apache.axis.client.Service;
    
    import javax.xml.namespace.QName;import java.io.*;
    
    /**
    
    *@author tyrone
    
    *
    
    * TODO To change the template for this generated type comment go to
    
    * Window - Preferences - Java - Code Style - Code Templates
    
    */
    
    public class SendFileClient { private Call call;
    
    /**
    
    * The constructor.
    
    */
    
    public SendFileClient() {
    
    try{
    
    Service service=
    
    new Service();
    
    call  = (Call) service.createCall();
    
    }catch(Exception ex){  System.out.println(ex.getMessage());
    
    } } public void saveFile(){ try {  String endpoint =  "http://localhost:8080/axis/services/DocumentFileManagement";
    
    System.out.println("start web service");
    
    call.setTargetEndpointAddress( new java.net.URL(endpoint) );
    
    call.setOperationName(new QName("http://soapinterop.org/", "saveFile"));
    
    File fp=new File("D:\\MyProject\\colimas\\colimas_plugin\\lib\\mail.jar");
    
    BufferedInputStream in=new BufferedInputStream(new FileInputStream(fp));
    
    int len=in.available();
    
    byte[] contents=new byte[len];
    
    in.read(contents,0,len);
    
    System.out.println("begin run");
    
    //开始调用Web Service:DocumentFileManagement的saveFile方法
    
    String ret = (String) call.invoke( new Object[] {fp.getName(),contents} );
    
    in.close();
    
    } catch (Exception e) {  System.err.println("error"+e.toString());
    
    }
    
    }
    
    }
    
    3 修改Action类的run方法
    
    Action类的run方法里的内容是Eclipse插件真正要做到事
    
    package colimas_plugin.actions;import org.eclipse.jface.action.IAction;
    
    import org.eclipse.jface.viewers.ISelection;
    
    import org.eclipse.ui.IWorkbenchWindow;import org.eclipse.ui.IWorkbenchWindowActionDelegate;
    
    import org.eclipse.jface.dialogs.MessageDialog;
    
    import com.nova.colimas.plugin.eclipse.*;
    
    /**
    
    * Our sample action implements workbench action delegate.
    
    * The action proxy will be created by the workbench and
    
    * shown in the UI. When the user tries to use the action,
    
    * this delegate will be created and execution will be
    
    * delegated to it. * @see IWorkbenchWindowActionDelegate
    
    */public class SampleAction implements IWorkbenchWindowActionDelegate { private IWorkbenchWindow window;
    
    /**
    
    * The constructor.
    
    */ public SampleAction() { }
    
    /**
    
    * The action has been activated. The argument of the
    
    * method represents the 'real' action sitting
    
    * in the workbench UI.
    
    * @see IWorkbenchWindowActionDelegate#run
    
    */ public void run(IAction action) { SendFileClient client=new SendFileClient();
    
    client.saveFile();
    
    MessageDialog.openInformation(  window.getShell(),
    
    "Colimas_plugin Plug-in",  "Colimas Connected");
    
    } /** * Selection in the workbench has been changed. We
    
    * can change the state of the 'real' action here
    
    * if we want, but this can only happen after
    
    * the delegate has been created.
    
    * @see IWorkbenchWindowActionDelegate#selectionChanged
    
    */ public void selectionChanged(IAction action, ISelection selection) { }
    
    /**
    
    * We can use this method to dispose of any system
    
    * resources we previously allocated.
    
    * @see IWorkbenchWindowActionDelegate#dispose
    
    */ public void dispose() { }
    
    /**
    
    * We will cache window object in order to
    
    * be able to provide parent shell for the message dialog.
    
    * @see IWorkbenchWindowActionDelegate#init
    
    */ public void init(IWorkbenchWindow window) { this.window = window;
    
    }
    
    4 调试
    
    首先启动Axis服务器,然后选择Eclipse的Run菜单的Run As -〉Run time workbench。
    
    这样会启动另一个Eclipse workbench,在这个workbench里你会看到toolbar里新增了一个按钮,
    
    点击按钮就会调用Webservice并返回控制台结果。
  9***************************************************************
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics