WSO2Con 2013 CFP Banner

Developing Web Services Using Apache Axis2 Eclipse Plugins - Part 1

Editors Note: This article has been subsumed and replaced by "Writing Axis2 Services with WSO2 Developer Studio" which offers a comprehensive replacement for the old Axis2 Eclipse plugs-ins. You can download the 100% open source WSO2 Developer Studio here.

Apache Axis2 Eclipse Plugins allow Web service developers to easily and speedily expose the available plain old Java applications as Web services. This tutorial by Lahiru Sandakithconsists of two parts, with two examples that walk you through developing and deploying a sample Web service using the Top-down (Contract First) and Bottom-up (Code First) approach using Axis2 Eclipse Plugins.

Date: Sun, 10th Jun, 2007
Level: Introductory
Reads: 527127
Discuss this article on Stack Overflow
Lahiru Sandakith
Software Engineer
WSO2 Inc.
sandakith's picture

The tutorial is written for Eclipse SDK v3.2 and Axis2 Eclipse Plugin v1.3.

Contents

Introduction

Apache Axis2 is the most popular and widely used core engine for Web services. It is a complete re-design and re-write of the widely used Apache Axis SOAP stack built on the lessons learned from Apache Axis. Apache Axis2 is more efficient, more modular, and more XML-oriented than the older version. It is carefully designed to support the easy addition of plugin "modules" that extend its functionality for features such as security and reliability. On the other hand, Eclipse is a project aiming to provide a universal tool set for development. It is an open source IDE that is mostly provided in Java, but the development language is independent and not limited in any way. It is the most widely used IDE for most computer languages, especially for JAVA.

Developing applications using any programming language is becoming easier with the availability of tooling. If tooling is available in areas like JAVA application development, it will facilitate faster and easier application development, and also increase the productivity of the developers. Most integrated development environments (IDEs) address the tooling and the features available around a particular area of development. Most IDEs available today go beyond supplying traditional tooling facilities, which address only certain areas in programming. They are becoming frameworks for developing applications.

This tutorial mainly focuses on the two above mentioned tools available for Web service developers. They are, Axis2 Eclipse Plugins, which are built around Eclipse-the Framework available for JAVA application development, and Axis2- the widely used core engine for Web services. These tools help the developers to easily expose their available plain old JAVA applications as Web services, using wizards.

This tutorial is split into two parts covering two basic Web services scenarios of Web service in the Bottom Up (Code First) and Top Down (Contract First) approaches with the Axis2 Eclipse Plugins.

PART 1 - Axis2 Eclipse Plugin demonstration of Bottom Up Approach of Web services Development.

PART 2 - Axis2 Eclipse Plugin demonstration of Top Down Approach of Web services Development.

Tutorial Scenario

Assume that you are a Java developer who wants to expose your available application as a Web service. This tutorial covers developing, deploying, and testing a temperature conversion application as a Web service in the Top Down (Contract First) and Bottom Up (Code First) approaches. In Web services terminology, Bottom Up (Code First) is used where the developer starts with the business logic, which is the code, and then develop and deploy the code as a Web service. The Top Down (Contract First) approach starts from the Web service descriptions, which is the WSDL, and then goes on to expose the Web service.

Only two Eclipse plugins are used in the process. The tutorial uses the Axis2 Web application deployed in your servlet container as the Web service deployment engine. Also, it is assumed that you know the basics of how to use Eclipse as your Java development environment, and therefore it does not cover areas such as creating a JAVA project in an Eclipse workspace and compiling and building a JAVA project in Eclipse.

Getting Started

These are the tools used in the tutorial.

1) Java Development Kit 1.4.2.x (Download)

2) Eclipse SDK 3.2.x (Download)

3) Apache Tomcat 4.1.x (Download)

4) Axis2 Web Application (Download)

5) Axis2 Eclipse Plugins (Download)

 

Now let us focus on the two plugins mentioned in the tutorial scenario.

1) Apache Axis2 Service Archive Generator Wizard – Eclipse Plugin

As a part of the Axis2 tool set, the service archive generator is an important tool that allows the generation of service archives (an "aar" file or a "jar" file) that can be deployed as a Web service to Axis2.

2) Apache Axis2 Code Generator Wizard - Eclipse Plugin

The Axis2 Code Generator Wizard is the other important tool that allows you to generate WSDL2Java and Java2WSDL code, which is the heart of developing and testing Web services.

To start developing Web services, you need to download, install the two plugins, and verify that the plugins are working properly. The installation of plugins into Eclipse is as simple as downloading the plugins from the Apache Axis2 download page and extracting them to the Eclipse plugins directory. You can download the two plugins from the Axis2 Tools Page. Refer to the installation instructions.

Other than the two plugins, we need the Axis2 runtime to deploy the developed Web services. We use the Axis2 Web Application which can be deployed in any popular servlet container. (You can download the Axis2 Web Application from the Axis2 Download page.) You have to just place it in the repository of the servlet container and run it. For example, if you are using Apache Tomcat, just copy the downloaded .war file, put it in the webapp folder, and start the servlet container.

 

PART 1 - The Bottom Up Approach in Web Services Development Using the Apache Axis2 Eclipse Plugin

  1. Start Eclipse SDK. First we need to create a JAVA project in Eclipse. (Follow the instruction on Eclipse SDK help.) You can give any name to the JAVA project, but for clarity, let us create a JAVA project called “TemperatureWebService”.

  2. In the Bottom Up Approach, we start with the service implementation and then build the deployable Web service component. We will be using the TemperatureConverter class definition as the logic for developing, deploying, and testing the Web service.

  3. Create a custom package ws.example appropriately and include the TemperatureConverter.java file in that package. Compile and build the project.

  4. package ws.example;
    
    /**
     * Temperature Converter Implementation Class
     */
    public class TemperatureConverter {
                    /**
                     * util method to convert celsius to fahrenheit
                     * @param cValue : double value of celsius
                     * @return calculated value of fahrenheit
                     */
                    public double c2fConvertion(double cValue) {
                                   return ((cValue * 9.0)/5.0 )+ 32.0;
                    }
    
                     /**
                     * util method to convert fahrenheit to celsius
                     * @param fValue : double value of fahrenheit
                     * @return calculated value of celsius
                     */
                    public double f2cConvertion(double fValue) {
                                   return ((fValue - 32.0) * 5.0) / 9.0;
                    }
    }

  5. After successfully building the project, we will create the service archive using the Axis2 Eclipse Service Archiver Plugin. On the File menu, click New and then click Other to access the Axis2 wizards. Else, you can press Ctrl+N.

  6. Note : At any given time, you can go back through the wizards, change the settings, and even start the wizards all over again to create a different Web service on another JAVA project available in your workspace.

  7. Select the Axis2 Service archiver and click Next. You will see the Axis2 service definition selection page.

  8. On this page, select the output location of the “TemperatureWebService” Java project that we previously developed. Here we point to the service implementation classes. If there is more than one class, you only have to point to the JAVA project build location. The wizard includes all the implementation files. To be on the safe side, if you are going to expose a complex project as a Web service, it's better to select the include .class files check box to omit unnecessary resource files that will increase the size of the deployable service archive that we are going to create.

  9. After selecting the correct output location, click Next.

  10. On this page, you can browse for the WSDL file. If you do not want to add a WSDL file to the service archive, select the Skip WSDL check box. Else you can select the Select WSDL check box, and specify the location of the WSDL file. We will skip the WSDL for the moment.

  11. Click Next.

  12. This page is to add the libraries. The library name (with the full path) can be specified by either typing it or browsing for it. Once the library name with the full path is entered, click Add to add the library to the list. The added libraries should be displayed in the Added libraries list. You can add as many external libraries as you wish.

    If any added library has to be removed, select it from the Added libraries list and click Remove.

  13. For this example, we do not need any external libraries added to the generated service. Therefore, click Next to proceed to the next step.

  14. This page is about the services.xml generation. If you have a custom services.xml file, you can select the services.xml file on this page by browsing for it or you can generate the service XML automatically. The browsing option is disabled when the Generate service xml automatically check box is selected.

  15. For this example, we use the automatically generated services.xml rather than a custom written one. Therefore, select the Generate service xml automatically check box, and then click Next.

  16. Note that this page will appear only if you selected to generate the services.xml automatically in the previous step. (If you selected a services.xml file, then you will be directed to the last page of the wizard.) After entering the correct service name and a valid fully qualified class name, load the existing methods of that class by clicking Load. If it is successfully loaded, you will see a table at the bottom of the page with the details of the loaded class. You can specify the methods to include in the services.xml by selecting the corresponding check boxes.

  17. Select the Search declared method only check box, to remove the inherited methods from the class. We do not need the inherited methods to be exposed and our only interest is in temperature conversion logic. Click Next to proceed to the last page of the wizard.

  18. On the last page of the wizard, specify the output file location and the output archive file name to complete the wizard. Note the location given in the example above. After specifying a name to identify the service that we will be deploying, we can directly guide the wizard to deploy this newly created Web service on any available Web service repository.

    Since we already have the Apache Axis2 Web application deployed on the servlet container, we can easily guide the wizard to deploy the service in the Axis2 Webapp (Axis2.war) inside Apache Tomcat. After deploying the Web application, the service repository will be available in the <TOMCAT_HOME>/webapp/axis2/WEB-INF/services folder.

  19. Click Finish to complete the steps in the wizard.

  20. Start the servlet container (in this case the Apache Tomcat), and navigate to http://localhost:8080/axis2 This will lead to the Axis2 Web application home page.

    To verify that our newly created service is available, navigate to the Services tab and view the available services. Your Temperature Converter service will be there.

Testing the Temperature Converter Service

Now that we have the service up and running, let's go ahead and test the created Temperature Converter service. This consists of two steps.

We have to generate the client code and invoke the Web service. For that we use the Axis2 Eclipse Codegen Plugin to create a WSDL from a Java source. For demonstration purposes of the Eclipse CodegAxis2 Eclipse Codegen Plugin we will do that in two steps. As the first step, we will create the WSDL, and then as the second step use that WSDL to generate code for the client.

Also note that you can skip the WSDL generation part since the deployed Web service is up and running. The WSDL will be generated when we click Temperature Converter under the available services in the Axis2 Web application. However, since the main aim of this tutorial is to introduce the Axis2 Eclipse Plugins, we are not going to use that option. We will use the Axis2 Eclipse Codegen Plugin to generate the WSDL for us.

Step 1 : Generate the WSDL from the Java source

  1. Start the Axis2 Eclipse Codegen Plugin by selecting it and clicking Next on the New wizard page.
  2. We are going to create the WSDL using the Axis2 Eclipse Codegen Plugin Java2wsdl option.

  3. On the first page, select the Generate a WSDL from a JAVA source and file option. Then, click Next.
  4. On this page, select the class to be exposed and the relevant .jar files /classes to be loaded as the classpath.

    Add the folder location of the class files of our project. After specifying the fully qualified class name click on the Add Folder button and add the location of the class files of your project. After the libraries have been set, click Test Class Loading to test whether the class is loadable.

  5. Test the class loading by clicking Test Class Loading
  6. Unless the class loading is successful, the Next button will not be enabled. As we did on the service archive generation, we have to enter the fully qualified class name as the service class. Then select the project output folder.

  7. Once the class loading is successful, click Next. The page below will appear.
  8. This page allows the parameters to be modified by setting the options for the generator. Note: If you customize these parameters (instead of the default), you will be generating a different Web service descriptor with different parameters than what we have generated by using the service archive wizard.

    NOTE : If you are using the 1.3 version of the Axis2 Eclipse Plugin you need to change the shema target namespace to http://example.ws to comply it with the Axis2 1.3 version. Please drop the trailing /xsd part of the shema target namespace. All other earlier version than 1.3 do not need this change.

  9. We will accept all the default values. Click Next.
  10. Here you can specify the output file location by typing or browsing for it using the Browse button. You have the option of browsing only Eclipse workspace projects by selecting the Add the source to a project on current eclipse workspace option. Else you have the option of saving the codegen results to the file system.
  11. Once the output file location and the output WSDL file name is added, click Finish to complete generation.
  12. A message appears informing you that all the operations were completed successfully. You have successfully completed the Java2WSDL code generation and created the WSDL of the Temperature Converter Service.

 

Step 2 : Generate code and invoke the service

In this step, we have to generate code, which represents the client side stubs, using the Axis2 Eclipse Codegen Plugin and test the deployed Temperature Converter Service by using the WSDL file generated in Step 1.

To create the client stub using the Axis2 Eclipse Codegen Plugin wsdl2java option:

  1. Start the Axis2 Eclipse Codegen Plugin by selecting it and clicking Next on the new wizard page.
  2. Create the client stub using the Axis2 Eclipse Codegen Plugin wsdl2java option by selecting the Generate Java source code from WSDL file option. Click Next.
  3. Select the previously generated WSDL location by browsing for it. Click Next.
  4. Once the WSDL file is selected, the next page will take you to the page from where the codegen options are to be selected. By far this is the most important page in this wizard. This page determines the characteristics of the code being generated.

    If this is the first time you invoked the wizard, you will see that the most common options are set by default. Advanced users will find it very easy to turn the knobs using these options. You can select Custom from the Select Codegen Options list and then change/edit the fields that you need. We are going to create stubs accepting the default values.

  5. Accept the default settings and click Next.
  6. On the final page of the wizard, you can specify the output file path by typing or browsing for it using the Browse button. You have the option of browsing only Eclipse workspace projects by selecting the Add the source to a project on current eclipse workspace option. Else you have the option to save the codegen results to the file system.

  7. Click Add the source to a project on current eclipse workspace and select the project that you have created earlier.
  8. Select the Add codegen jars to the codegen resulted project check box so that we can easily compile the code without worrying about adding Axis2 libraries to the JAVA project classpath.

  9. Click Finish. A message appears informing you that you have successfully completed the WSDL2Java code generation.
  10. The client stub files will be generated in the project.
  11. In order to compile the code we need to add the generated libraries to the project library path. You can add the .jar files in the lib directory by navigating the project properties of the Java project.

    After adding the required libraries, you will be able to clean build the project without any errors.

     

  12. Now we will write the Client, and use this client to invoke the Web service deployed earlier. Add the following TemperatureConverterServiceClient. java class to the project,
  13. package ws.example;
    
    public class TemperatureConverterServiceClient {
        public static void main(String[] args) {
            TemperatureConverterStub stub;
            try {
                double c_value = 32;
                stub = new TemperatureConverterStub
               ("http://localhost:8080/axis2/services/TemperatureConverter");
                TemperatureConverterStub.C2FConvertion c2f = new TemperatureConverterStub.C2FConvertion();
                c2f.setCValue(c_value); 
                TemperatureConverterStub.C2FConvertionResponse res = stub.c2FConvertion(c2f);  
                System.out.println("C Value : "+c_value+ "\tResult : " +res.get_return());
                TemperatureConverterStub.F2CConvertion f2c = new TemperatureConverterStub.F2CConvertion(); 
                f2c.setFValue(res.get_return());
    
                TemperatureConverterStub.F2CConvertionResponse res1 = stub.f2CConvertion(f2c);
                System.out.println("F Value : "+res.get_return()+ "\tResult : " +res1.get_return());
           } catch (Exception e) {
               e.printStackTrace();
           }
        }
    }

    NOTE : If you are using an early version of the Axis2 Eclipse Plugins than 1.3, you may have to change the client according to the stubs that have been generated. Previous verisons of Axis2 did generate multiple stubs for each port type of the wsdl and you may use the example client given below for those versions.

    package ws.example;
    
    import java.rmi.RemoteException;
    
    import org.apache.axis2.AxisFault;
    
    public class TemperatureConverterServiceClient {
    
      public static void main(String[] args) {
        TemperatureConverterTemperatureConverterSOAP11PortStub stub;
        try {
          double c_value = 32;
          stub = new TemperatureConverterTemperatureConverterSOAP11PortStub
    	 		("http://localhost:8080/axis2/services/TemperatureConverter");
          TemperatureConverterTemperatureConverterSOAP11PortStub.C2FConvertion c2f 
          	= new TemperatureConverterTemperatureConverterSOAP11PortStub.C2FConvertion();
          c2f.setCValue(c_value);
          TemperatureConverterTemperatureConverterSOAP11PortStub.C2FConvertionResponse res 
            = stub.c2FConvertion(c2f);
           System.out.println("C Value : "+c_value+ "\tResult : " +res.get_return());
           TemperatureConverterTemperatureConverterSOAP11PortStub.F2CConvertion f2c 
    	 = new TemperatureConverterTemperatureConverterSOAP11PortStub.F2CConvertion();
            f2c.setFValue(res.get_return());
    
            TemperatureConverterTemperatureConverterSOAP11PortStub.F2CConvertionResponse res1 
    	 = stub.f2CConvertion(f2c);
            System.out.println("F Value : "+res.get_return()+ "\tResult : " +res1.get_return());
            } catch (AxisFault e) {
            	e.printStackTrace();
            } catch (RemoteException e) {
                    e.printStackTrace();
            }
      }
    }

    After adding the TemperatureConverterServiceClient. java class to the project, compile, and build the project. After that you can run the client to test the service. If you have successfully carried out all the steps, the temperature converter service will be invoked and the results of the service will be displayed on the command line output.

    Note: The stub assumes that you run Tomcat on 8080 (if not, change the stub URL and re-run the client).

Sample Project Src Download

Conclusion

Web service creation, deployment, and testing is no more a time consuming task. With the Axis2 Eclipse Plugins you can create, deploy, and test your Web services using a wizard. The time to write, deploy, and test a Web service is reduced to a minimum with the introduction of these tools.

PART 2 - Top Down Approach

 

See also..

How to create a web service using WSAS tools in 3 steps

How to create a web service client using WSAS tools in 3 steps

How to debug a web service using WSAS tools in 3 steps

How to edit a web service while testing it using WSAS tools in 3 steps

References

Apache Axis2 - http://ws.apache.org/axis2

Apache Axis2 Tools - http://ws.apache.org/axis2/tools/index.html

Eclipse.org - http://ws.apache.org/axis2/tools/index.html

Eclipse Plugins - http://www.eclipseplugincentral.com/

Author

Lahiru Sandakith P.G. WSO2, Inc. sandakith at wso2 dot com

hussaini's picture

Problem using service archiver plugin

eclipse.buildId=I20080617-2000 java.version=1.5.0 java.vendor=Sun Microsystems Inc. BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US Command-line arguments: -os win32 -ws win32 -arch x86 -clean Error Thu Jan 01 21:47:02 GMT+05:30 2009 Problems occurred when invoking code from plug-in: "org.eclipse.jface". java.lang.NoClassDefFoundError: org/apache/axiom/om/OMContainer at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:242) at org.apache.axis2.tool.service.eclipse.ui.ServiceXMLGenerationPage.updateTable(ServiceXMLGenerationPage.java:241) at org.apache.axis2.tool.service.eclipse.ui.ServiceXMLGenerationPage.createControl(ServiceXMLGenerationPage.java:160) at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:170) at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:669) at org.eclipse.jface.wizard.WizardDialog.setWizard(WizardDialog.java:1083) at org.eclipse.jface.wizard.WizardDialog.updateForPage(WizardDialog.java:1142) at org.eclipse.jface.wizard.WizardDialog.access$2(WizardDialog.java:1139) at org.eclipse.jface.wizard.WizardDialog$4.run(WizardDialog.java:1128) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.jface.wizard.WizardDialog.showPage(WizardDialog.java:1126) at org.eclipse.ui.internal.dialogs.NewWizardSelectionPage.advanceToNextPageOrFinish(NewWizardSelectionPage.java:71) at org.eclipse.ui.internal.dialogs.NewWizardNewPage$1.doubleClick(NewWizardNewPage.java:355) at org.eclipse.jface.viewers.StructuredViewer$1.run(StructuredViewer.java:799) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.runtime.Platform.run(Platform.java:880) at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) at org.eclipse.jface.viewers.StructuredViewer.fireDoubleClick(StructuredViewer.java:797) at org.eclipse.jface.viewers.AbstractTreeViewer.handleDoubleSelect(AbstractTreeViewer.java:1419) at org.eclipse.jface.viewers.StructuredViewer$4.widgetDefaultSelected(StructuredViewer.java:1173) at org.eclipse.jface.util.OpenStrategy.fireDefaultSelectionEvent(OpenStrategy.java:237) at org.eclipse.jface.util.OpenStrategy.access$0(OpenStrategy.java:234) at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:295) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3823) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3422) at org.eclipse.jface.window.Window.runEventLoop(Window.java:825) at org.eclipse.jface.window.Window.open(Window.java:801) at org.eclipse.ui.internal.handlers.WizardHandler$New.executeHandler(WizardHandler.java:253) at org.eclipse.ui.internal.handlers.WizardHandler.execute(WizardHandler.java:273) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:281) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:247) at org.eclipse.ui.internal.actions.CommandAction.runWithEvent(CommandAction.java:157) at org.eclipse.ui.internal.actions.CommandAction.run(CommandAction.java:171) at org.eclipse.ui.actions.NewWizardDropDownAction.run(NewWizardDropDownAction.java:174) at org.eclipse.jface.action.Action.runWithEvent(Action.java:498) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:583) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:500) at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:452) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3823) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3422) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504) at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
haisol's picture

Derived classes

Hi Lahiru, went through the tutorial with some difficulties - missing jars in the code generator (solution from http://blogiterox.wordpress.com/author/erictamminga/) - and missing axis2 jars when using "Add Axis2 codgen jars" option only (have to use "Add Axis2 libraries" as well) But then every thing went smooth - thanks a lot!!! Now I'm facing some new problems with my own project, see the attached wsdl file. This is a condensed version of a file I've got from a company, where the service runs already. Here Classes are used as parameters. Intended is to include a mother class (Event) in the definition, but transport derived classes in the stream. This seams not to work, as the derived class (EvtCommInfo) is not included. Mother classes on the other side are included (SoapBase). Is this a general problem of Axis2? Or a problem of the of the code generator? Do you have any proposals what to do? Thanks in advance br heino
debapriya's picture

InvocationTargetException

Hi , I follow the same steps to avoid the InvocationTargetException by adding the two jars into Axis2_Codegen_Wizard_1.3.0\lib folder. And also added in to plugin.xml file.But still the same problem is coming when i am trying to generate the wsdl file . Can you please help me out on this.Because i am totally new to this axis2 and webservices. Thnaks in advance. Regards Debapriya      
sanketdaru's picture

org/apache/woden/resolver/URIResolver class not found

Hi, First of all, a great job on the tutorial. Keep up the nice efforts. I followed the tutorial, ran into the Invocation exception and found a way around it by following the comments carefully. My problem is this. When I try to execute the client, I get an exception that reads... Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/woden/resolver/URIResolver at org.apache.axis2.deployment.ModuleDeployer.deploy(ModuleDeployer.java:60) at org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136) at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:597) at org.apache.axis2.deployment.RepositoryListener.loadClassPathModules(RepositoryListener.java:195) at org.apache.axis2.deployment.RepositoryListener.init2(RepositoryListener.java:70) at org.apache.axis2.deployment.RepositoryListener.(RepositoryListener.java:63) at org.apache.axis2.deployment.DeploymentEngine.loadFromClassPath(DeploymentEngine.java:164) at org.apache.axis2.deployment.FileSystemConfigurator.getAxisConfiguration(FileSystemConfigurator.java:135) at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:68) at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:184) at org.apache.axis2.client.ServiceClient.configureServiceClient(ServiceClient.java:150) at org.apache.axis2.client.ServiceClient.(ServiceClient.java:143) at ws.example.TemperatureConverterStub.(TemperatureConverterStub.java:103) at ws.example.TemperatureConverterStub.(TemperatureConverterStub.java:89) at ws.example.TemperatureConverterStub.(TemperatureConverterStub.java:140) at ws.example.TemperatureConverterServiceClient.main(TemperatureConverterServiceClient.java:8) I tried to use findjar.com to find this class, to no avail. I am trying to resolve the issue. In the meanwhile, any help with this will be appreciated. Thanks. Regards, Sanket Daru.
sanketdaru's picture

Resolved: org/apache/woden/resolver/URIResolver class not found

Hi, Just resolved the issue. Here is what I did... Searched for the missing class URIResolver which led me to Apache Woden project at http://ws.apache.org/woden/ I used their M8 nightly build located at http://ws.apache.org/woden/dev/1.0/builds.html From the zip file, I used woden-api-1.0M8.jar, placed it under the lib folder of my project and added it to my project's build path in Eclipse. Hope this helps someone. Once again, great job on the tutorial. It helped me a lot. :-) Cheers!!! Regards, Sanket Daru.
fenfen's picture

log4j Warning

Thanks a lot for your solution, I face the same error and I get the right result after adding the woden-api-1.0MB.jar into the project's build path, and this jar is also contained in Axis-1.4.1/lib But there is still a warning says: log4j:WARN No appenders could be found for logger (org.apache.axis2.description.AxisService). log4j:WARN Please initialize the log4j system properly. Do you konw the reason for this warning?How to solve it? Thanks, Regards, fenfen
mark.john878.yahoo.com's picture

web development

Webnomics Technologies is a asp.net development and outsourcing company providing affordable design and development services. Now a new project of Virtual IT launched as a virtual education....(forex trading ) Webnomics technologies has their expertise in forex market and travel industry which provide most latest forex trading, forex broker and updates. Webnomics Technologies also have travel services for the one cheap trip booking booking. Webnomics technologies has a software development department to provide modern software | best travel deals | travel insurance | web development
fenfen's picture

log4j Waring--Solution

missing jar: log4j.properties.patch.jar see https://issues.apache.org/jira/browse/AXIS2-3093?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel I add this jar file to the build path, and the warning is disappeared hooooo fenfen
pratibhasoni's picture

facing problem

hi, Actually at the time of creating WSDL from java source file i am able to complete all the steps but at the time of clicking "finish" button it's saying "java.lang.reflect InvocationTarget exception" Plesae help me if u can solve it.
kirankumar's picture

How to resolve java.lang.reflect.InvocationTargetException

Hello Sir, This site was really helpful to me in getting started with webservices. My Question is when i create wsdl from tha java class i get java.lang.reflect.InvocationTargetException Please let me know the Resolution I am using axis1-4 Do i need to Import any specified Jars is so please let me know the Possiblity asap. Thanks Kiran
gualice88.yahoo.com's picture

ugg boots

evey time when i was tired i would like to go to ugg shop to buy ugg sandals australia bootS ugg boots girls classic tall ugg boots and ugg boots on sale to keep me happy especiallly in the winter.because it can keep me from cold. As there are so many knock off ugg boots so i can buy a lot of lowest price ugg boots
meflex's picture

java.lang.reflect.InvocationTargetException

Hi there, I am new to this Axis2 plugin. When I tried to follow this tutorial (both top down and bottom up) I am getting java.lang.reflect.InvocationTargetException. Can you please help me to overcome this Exception. My configuration: Eclipse 3.2 (uropa) JDK : 1.5 Axis2 version : 1.3
indocalido's picture

java.lang.reflect.InvocationTargetException

Hello Lahiru, I get the same error in the code generator wizard when I try to follow the tutorial. There is no details either ./metadata/.log The configuration I have is: Eclipse 3.4.0 Ganymede JDK : 1.5 Axis2 wizards version : 1.3
waikiki's picture

How to run the client

Hello, thanks for this fantastic tutorial. I'm an absolute beginner in web services and now I wonder how to run the client in Eclipse. At first I have to start the tomcat server, right? Then, when I try to run the TemperatureConverterServiceClient as a Java Application, I get the error: org.apache.axis2.AxisFault: The service cannot be found for the endpoint reference (EPR) http://localhost:8080/axis2/services/TemperatureConverter Help appreciated :)
muhlis's picture

Solved the InvocationTargetException

Hi, i solved the problem with InvocationTargetException in Codegen plugin. I use Eclipse Ganymede and axis2 codegen 1.4 u must do follwing things Exit eclipse 1. Copy 2 files: "backport-util-concurrent-3.1.jar" and "geronimo-stax-api_1.0_spec-1.0.1.jar" from /lib folder to the \plugins\Axis2_Codegen_Wizard_1.3.0\lib folder. 2. Edit the plugins.xml file in the \plugins\Axis2_Codegen_Wizard_1.3.0 folder as follows:    <runtime>       ...       <library name="lib/geronimo-stax-api_1.0_spec-1.0.1.jar">          <export name="*"/>       </library>       <library name="lib/backport-util-concurrent-3.1.jar">          <export name="*"/>       </library>       ...     </runtime> 3. then delete the Axis2_codegen_wizard folder in ...[workspace]\.metadata\.plugins start eclipse  
nle777.gmail.com's picture

InvocationTargetException

I followed the above 3 steps (Aug 6,2008) to try to fix the InvocationTargetException problem but it is still not working. I am using Ganymede 3.4.2. Can anyone help me. Thanks.
kirankumar's picture

HI Thanks for your support

HI Thanks for your support Please let me know Where Can we Get these Specified Jars backport-util-concurrent-3.1.jar geronimo-stax-api_1.0_spec-1.0.1.jar Thanks Kiran
marck7111.gmail.com's picture

HI Thanks for your support

hi everybody thanks for ur information. Really this post is a nice post. and this is my site please everybody visit this site:http://www.adnpost.com
bl's picture

Solved the InvocationTargetException

Thanks to muhlis ! The InvocationTargetException problem was solved using muhlis' 3 steps from August 6, 2008. I'm using: eclipse JEE ganymede SR1 (eclipse 3.4.1 / Windows) java 1.5.0_13 axis2-eclipse-codegen-wizard.zip (The codegen is from http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/axis2/tools/1_4_1/axis2-eclipse-codegen-wizard.zip, which unzipped says version 1.3.0) Bo
thanhnho271287's picture

java.lang.reflect.InvocationTargetException error

you can send image about process
narramadan's picture

Hi muhlis , I followed the

Hi muhlis , I followed the steps as you suggested. But seems the problem still exists for me, getting the same java.lanf.reflect.InvocationTargetException. Am Using, Eclipse Europa Java 1.6 axis2-eclipse-codegen-wizard-1.4 I couldnt find any log file written by eclipse for the exception thrown. Please suggest if i need to configure any thing else to get rid of this problem..
misterplus123.gmail.com's picture

Hi, possibly u might be able

Hi, possibly u might be able to assist me? I saw you are using blog engine on ur website. I lately have decided to create a blog for myself and i am currently using one of the freely available blog services available in my country, but i would really like to create my own blog using my personal website name. I did recently read about blog engine and i was thinking maybe you know where i could find very good tutorials or videos on how to make use of blog engine properly? Thanks alot.Rome Hotels Hotels in Rome Rome Cheap Hotels Rome Italy Hotels
bradst's picture

InvocationTargetException solution

The problem seems to be with the Axis code generator. I found the previous version (1.3) at ftp.wayne.edu/apache/ws/axis/tools/1_3 I've tried it with both Europa and Ganymede and it seems to work. You will also need to use version 1.3 of Axis2. Otherwise, you'll get a different problem after generating the code. You can find version 1.3 of Axis2 at ftp.wayne.edu/apache/ws/axis2/1_3 Hope this solves your problem. Brad
ashokchittela's picture

Axis2 Code Gen Wizard - InvocationTargetException

Hi Lahiru, Followed the tutorial step by step in eclipse but, when i press the Finish button of the Code Gen Wizard to generate the WSDL file - I get the Error dialoge "java.lang.reflect.InvocationTargetException". I am using the below environment. jdk1.5.0_16 eclipse 3.4 jboss 4.2.2 axis2-1.4 i even tried with axis2-1.3 same error is coming. I am geting this error in both the cases java2wsdl and wsdl2java. Any quick help is really appreciated i am struck on this. Thanks, Ashok
ashokchittela's picture

Axis2 Code Gen Wizard - InvocationTargetException

Hi Lahiru, Did you have the solution for the "InvocationTargetException" problem? Please post here if you got it. Thanks. Ashok
elzas's picture

Errors after generating stub

I've successfully taken all steps until step 8. After generating the stubs with codegen I get several errors all of the type that a class cannot be found (xxx cannot be resolved to a type). I added the generated JAR's to the build path of the project, this solves some of the errors, but several remain: org.apache.axis2.client.async.AxisCallback cannot be resolved to a type org.apache.axis2.databinding.ADBException cannot be resolved to a type org.apache.axis2.databinding.utils.writer cannot be resolved to a type The method addAnonymousOperations() is undefined for the type TemperatureConverterStub The type new ADBDataSource(){} must implement the inherited abstract method ADBDataSource.serialize(XMLStreamWriter) Does anyone have any pointers how to fix this? I can't continue with the tutorial without getting this part fixed. Thanks!
elzas's picture

Ok, I found out myself what

Ok, I found out myself what the problem was. I had a problem with step 7 where the axis2 libraries were not added correctly. So I downloaded the binary version of axis2 and referred to it in order to get the libraries added. Turns out that the version you get when you download the binary version is 1.2, whereas the codegen tool assumes 1.4. The fix for this is to download the webapp version, which does include the 1.4 libraries and then manually add these libraries to the build path of your project.
ashokchittela's picture

Axis2 Code Gen Wizard - InvocationTargetException

Hi Lahiru, Followed the tutorial step by step in eclipse but, when i press the Finish button of the Code Gen Wizard to generate the WSDL file - I get the Error dialoge "java.lang.reflect.InvocationTargetException". I am using the below environment. jdk1.5.0_16 eclipse 3.4 jboss 4.2.2 axis2-1.4 i even tried with axis2-1.3 same error is coming. Any help is really appreciated. Thanks, Ashok
futbolfrank.'s picture

More Complicated Web Services?

Hello, i was wondering if there were any more tutorials (maybe intermediate) invovling deploying and creating webservices in this manner.  Could someone direct me to a tutorial on webservices using more than just a simple conversion function  (i.e. objects, databases, arraylists, etc.)  It would be great if it was similar to the way this was created (using axis 2, generating a wsdl for java code, making a client, etc) Thanks
champak's picture

Problem developing client for eclipse RCP product

Hi Lahiru, Thanks for a beautiful tutorial. We have an eclipse RCP product amd we want to publish some of its functionality as web-service. The product consists of 12 projects.When we create the client and try to reference any of the project components, it is unable to refer it. We run product first then try to configure product through web service.Can you please help on this?
xchen's picture

Any one got a solution for the "InvocationTargetException" issue

Hi,   I am wondering if any one got the solution for the "InvocationTargetException" problem? Please post here if you got it.   Thanks.  
vamsikrishna's picture

java.lang.reflect.InvocationTargetException

The tutorial you provided is very good. I got on problem, while doing the excercise. I am getting following exception  An error occurred while completing the process - java.lang.reflect.InvocationTargetException The above error is coming when i am trying to generate the wsdl from java (Axis2 Codegen Wizad)  and this is happend in the last ste of generating wsdl. I am able to complete the prevoius steps and service also deployed on my server. Please tell me how to solve this problem.
kbhattac's picture

java.lang.reflect.InvocationTargetException

Add the following jar files to the Eclipse platform classpath: jsr173_api.jar backport-util-concurrent-2.1 It solved the error for me. Let me know if this helps.  
jl's picture

hi, when i copied the

hi, when i copied the TemperatureConverterServiceClient.java codes and pasted them : TemperatureConverterTemperatureConverterSOAP11PortStub stub;   is underlined for errors. Any idea what i can do to solve it?         Thanks
ssoward's picture

Axis tutorial

Great tutorial thank very much. I was able to get through it without any major issues. My only concern now is what exactly did I do? What I mean is having the IDE do all the work is great especially since the stub class has ~3000 lines of code, but I'd like to know sort of an overview of what we accomplished and where I can take this tutorial from here.
sandakith's picture

RE : Axis tutorial

Hi, Thanks for the complements !! What you have done is created a web service host it in axis2 and use your own client to invoke it. See the tutorial scenario for more details. If that is not what you are looking for you need to look in to the advantages of using web services tehnologies in the web. Thanks Lahiru Sandakith.  
chanaka2008's picture

Getting Exception While Tring to Invoke Service Method

Hi Lahiru, I'm using Axis2-1.3 and JDK1.5 and shema target namespace is set to http://example.ws as you said. I am getting an exception by invoking the temperature client i.e. org.apache.axis2.AxisFault: Exception occurred while trying to invoke service method c2fConvertion     at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:486)     at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:343)     at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:389)     at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211)     at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)     at ws.example.TemperatureConverterStub.c2FConvertion(TemperatureConverterStub.java:440)     at ws.example.TemperatureConverterServiceClient.main(TemperatureConverterServiceClient.java:12) Regards, Chanaka
sandakith's picture

RE : Getting Exception While Tring to Invoke Service Method

Hi,  Please drop the trailing /xsd part of the shema target namespace. All other earlier version than 1.3 do not need this change. Dint that cure the issue, what heppen leaving the /xsd Thanks Lahiru Sandakith.
bazookaman's picture

Plz !! Need Help !!

I've got these errors :   log4j:WARN No appenders could be found for logger (org.apache.axis2.description.AxisService). log4j:WARN Please initialize the log4j system properly. Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException     at org.apache.commons.httpclient.HttpMethodBase.getURI(HttpMethodBase.java:261)     at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:382)     at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)     at org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:558)     at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:176)     at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:73)     at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:305)     at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:201)     at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:452)     at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:330)     at org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:294)     at ws.example.TemperatureConverterTemperatureConverterSOAP11PortStub.c2FConvertion(TemperatureConverterTemperatureConverterSOAP11PortStub.java:162)     at ws.example.TemperatureConverterServiceClient.main(TemperatureConverterServiceClient.java:19)   What should i do ? THX
sandakith's picture

RE : Plz !! Need Help !!

Hi, This error occurs because of you are missing commons-codec-<version>.jar file in your plugin libs. Can you confirm this with the plugin version. Also is there a way that your classpath was updated by some other library that replaces this class. Thanks Lahiru Sandakith
bazookaman's picture

Plz !! Need Help !!

I solved the pbm! I added some missing libraries and i suspended the firewall but this message still appearing : log4j:WARN No appenders could be found for logger (org.apache.axis2.description.AxisService). log4j:WARN Please initialize the log4j system properly.   Thx for this tutorial but i wannt to know if it is possible to manipulate the SOAP message ?? Thx a lot
sandakith's picture

RE : Plz !! Need Help !!

Hi, * Great that you got resolved the problem. Please tell us what is the solution that you have come up with the version of the plugin that you are using if possible. * The log4j warning comes from the axis2 internals, I guess we have to live with this, or override the log4j config with tweeks and insert it to the classpath. * What do yo mean by manipulating the SOAP message, I guess you can use the tcp monitor if you need to send any kind of SOAP message to a endpoint. I guess this tool will help to resolve your problem. See More on  http://ws.apache.org/commons/tcpmon/tcpmontutorial.html Thanks Lahiru Sandakith.  
hanram's picture

org.apache.axis2.AxisFault: The service cannot be found for the

i have used Axis2.1_3 version i got only 2 classes when Stub Generated.   i am getting error as     org.apache.axis2.AxisFault: The service cannot be found for the endpoint reference (EPR) http://localhost:9999/axis2/services/TemperatureConverter  Utils.java:486)OutInAxisOperation.java:343)OutInAxisOperation.java:389)OutInAxisOperation.java:211)OperationClient.java:163)TemperatureConverterStub.java:440)TemperatureConverterServiceClient.java:13)  at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext( at org.apache.axis2.description.OutInAxisOperationClient.handleResponse( at org.apache.axis2.description.OutInAxisOperationClient.send( at org.apache.axis2.description.OutInAxisOperationClient.executeImpl( at org.apache.axis2.client.OperationClient.execute( at ws.example.TemperatureConverterStub.c2FConvertion( at ws.example.TemperatureConverterServiceClient.main(   ThanQ Han
sandakith's picture

RE : org.apache.axis2.AxisFault: The service cannot be found for

Hi Han, Please check the axis2 server running port and stub generated ports are the same. (EPR) http://localhost:9999/ means that you are trying to access the axis2 instence running at the 9999, Also can you check on the steps of the deployment of the service and verify your service exists on the service listing page on the axis2. http://localhost:9999/axis2 Thanks Lahiru Sandakith.    
petef's picture

Deploying web service to JBoss 4.2.2.GA problem!

When I copy the aar file generated from the axis2 eclipse plugin to the following directory in JBoss: C:\jboss-4.2.2.GA\server\default\deploy I get the following error in JBoss logs: --- Packages waiting for a deployer --- org.jboss.deployment.DeploymentInfo@4f0b55bd { url=file:/C:/jboss-4.2.2.GA/serve r/default/deploy/TemperatureConverter.aar } deployer: null status: null state: INIT_WAITING_DEPLOYER watch: file:/C:/jboss-4.2.2.GA/server/default/deploy/TemperatureConverter.aar altDD: null lastDeployed: 1202500803710 lastModified: 1202500803710 mbeans: What am I doing incorrectly in tutorial 1 above? Thanks, P
petef's picture

Figured it out. Thanks.

Figured it out. Thanks.
jackalope's picture

So............

Don't leave us in suspense. How did you resolve the problem?
sandakith's picture

RE : Figured it out. Thanks.

Great !! , Can you share the infomation on what happened and what was the workarround int he deployment in Jboss. Thanks Lahiru Sandakith.
correiadasilva's picture

Service Archiver

Hi, First I want thank to Lahiru Sandakith for this tutorial. I've been using the axis2 wizards (great help!) with no problems until yesterday. But now, when I open a new project, select "Axis2 wizards > Axis2 Service Archiver" and click Next to open the first form of the wizard, it opens with only the header (and that information "Welcome...") and the buttons. I try this operations: - Remove the plug-in folder on the worspace; - Reload the plug-in on Preferences window; - Delete the plug-in on eclipse plug-in folder and extract it again. Nothing of this solve the problem. After many attempts i got this scenario: - My WebService project have a jar with some custom classes. If i remove this jar from the classpath I'm able to run Axis2 Service Archiver wizard, If I add the jar i got the problem. I don't see a relation between this, but... The classes included in that jar are simple classes and I did this before with success. Here is the log generated by eclipse: !MESSAGE Unhandled event loop exception !ENTRY org.eclipse.ui 4 0 2007-11-30 09:13:42.504 !MESSAGE java.lang.ExceptionInInitializerError !STACK 0 java.lang.ExceptionInInitializerError  at java.lang.Class.forName0(Native Method)  at java.lang.Class.forName(Unknown Source)  at org.apache.axis2.tool.service.eclipse.ui.ServiceXMLGenerationPage.updateTable(ServiceXMLGenerationPage.java:240)  at org.apache.axis2.tool.service.eclipse.ui.ServiceXMLGenerationPage.createControl(ServiceXMLGenerationPage.java:159)  at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:180)  at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:614)  at org.eclipse.jface.wizard.WizardDialog.setWizard(WizardDialog.java:989)  at org.eclipse.jface.wizard.WizardDialog.updateForPage(WizardDialog.java:1041)  at org.eclipse.jface.wizard.WizardDialog.access$2(WizardDialog.java:1038)  at org.eclipse.jface.wizard.WizardDialog$4.run(WizardDialog.java:1028)  at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)  at org.eclipse.jface.wizard.WizardDialog.showPage(WizardDialog.java:1026)  at org.eclipse.jface.wizard.WizardDialog.nextPressed(WizardDialog.java:757)  at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:351)  at org.eclipse.jface.dialogs.Dialog$3.widgetSelected(Dialog.java:660)  at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:90)  at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)  at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)  at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3348)  at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968)  at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)  at org.eclipse.jface.window.Window.open(Window.java:796)  at org.eclipse.ui.actions.NewWizardAction.run(NewWizardAction.java:181)  at org.eclipse.jface.action.Action.runWithEvent(Action.java:499)  at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:539)  at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:488)  at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:400)  at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)  at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)  at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3348)  at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968)  at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1930)  at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1894)  at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:422)  at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)  at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)  at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)  at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)  at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)  at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)  at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)  at java.lang.reflect.Method.invoke(Unknown Source)  at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)  at org.eclipse.core.launcher.Main.basicRun(Main.java:280)  at org.eclipse.core.launcher.Main.run(Main.java:977)  at org.eclipse.core.launcher.Main.main(Main.java:952)  ... 49 more I'm using wizards v. 1.3 and Eclipse 3.2. Some help will be apreciated, Daniel  
sandakith's picture

RE : Service Archiver

Hi Daniel, Seems to me that some thing went wrong with the plugin in a previous invocation and its persisted in the workspace metadata. For a clean startup again we need to clear those metadata which were related to the plugin in the workspace also cleaared. These are located inside the workspace/.metadata directory in the name of the plugin. Thanks Lahiru Sandakith