线程" main"中的例外情况java.lang.NoClassDefFoundError:org / apache / commons / discovery / tools / DiscoverSingleton

时间:2014-01-16 17:14:50

标签: java web-services

这里我试图通过wsdl使用webservices进行调用,同时运行代码获取以下异常。 同时显示测试代码,请帮帮我。感谢。

 import org.apache.axis.client.Service;
import org.apache.axis.client.Call;
import org.apache.commons.codec.binary.Base64;

import javax.xml.namespace.QName;
import java.net.URL;


public class WebTest {
    Service service = null;

    String endpoint = "http://mytest.com/test/Signup.jws";
    String userName =  "globel";
    String userPw =  new String(Base64.decodeBase64("Z23fG46732345FG=".getBytes()));;

    public WebTest() {
        try {
            service = new Service();
            System.out.println("*** executed successfully ");
        } catch (Exception e) {
            System.out.println("Exception - " + e.getMessage());
        }
    }
    public void testWeb(String f1, String f2, String f3, int itemcode, String f4){
    try {
            Call call = (Call)service.createCall();
            call.setTargetEndpointAddress(new URL(endpoint));
            call.setOperationName(new QName("emp"));
            call.setUsername(userName);
            call.setPassword(userPw);
            Object[] params = new Object[5];
            params[0] = new String(f1);
            params[1] = new String(f2);
            params[2] = new String(f3);
            params[3] = new Integer(itemcode);
            params[4] = new String(f4); 
            call.invoke(params);

        } catch (Exception e) {
             System.out.println("Exception - " + e.getMessage());
        }
    }

    public static void main(String[] args) {
        String orderDate = "03-Jan-2013";
        WebTest webtest= new WebTest() ;
        webtest.testWeb("rayban","aviator",orderDate,82724,"113000") ;
    }

}
  

收到以下错误 -

     

线程“main”中的异常java.lang.NoClassDefFoundError:   org / apache / commons / discovery / tools / DiscoverSingleton at   org.apache.axis.components.logger.LogFactory $ 1.run(LogFactory.java:45)     在java.security.AccessController.doPrivileged(Native Method)at   org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.java:41)     在   org.apache.axis.components.logger.LogFactory。(LogFactory.java:33)     在   org.apache.axis.handlers.BasicHandler。(BasicHandler.java:43)     在org.apache.axis.client.Service.getAxisClient(Service.java:207)at   org.apache.axis.client.Service。(Service.java:225)

4 个答案:

答案 0 :(得分:3)

对于maven用户:将commons-discovery依赖项添加到pom.xml文件中 e.g

<dependency>
    <groupId>commons-discovery</groupId>
    <artifactId>commons-discovery</artifactId>
    <version>0.4</version>
</dependency>

答案 1 :(得分:1)

  

在我的代码中添加了discovery-0.4.jar,它解决了我的问题。

答案 2 :(得分:0)

在我的情况下,我添加了commons-discovery-0.2.jar

答案 3 :(得分:0)

添加pom.xml

<dependency>
        <groupId>commons-discovery</groupId>
        <artifactId>commons-discovery</artifactId>
        <version>0.5</version>
    </dependency>