简体   繁体   English

java.lang.NoClassDefFoundError:org / apache / commons / discovery / tools / DiscoverSingleton

[英]java.lang.NoClassDefFoundError: org/apache/commons/discovery/tools/DiscoverSingleton

I have create a registration form in jsp file with jsf and I try to connect it with a web service in order to pass through this the elements to a database. 我用jsf在jsp文件中创建了一个注册表单,我尝试将它与Web服务连接,以便将这些元素传递给数据库。

When I press submit button I get an error. 当我按下提交按钮时,我收到一个错误。 I don't think that the problem concerns the connection code but I'm not sure. 我不认为问题涉及连接代码,但我不确定。

Can anybody tell me something that maybe helps me in some way? 谁能告诉我一些可能在某种程度上对我有帮助的事情?

error: 错误:

javax.servlet.ServletException: #{formabean.submitdetails}: java.lang.NoClassDefFoundError: org/apache/commons/discovery/tools/DiscoverSingleton
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
     org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

my form jsp: 我的形式jsp:

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<f:view>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
            <title>Form</title>
        </head>
        <body>
            <div align="right" >
                <p>
                    <br>.............
<h:commandButton value="submit" type="submit" 
                                 action="#{formabean.submitdetails}" />


            </h:form>

        </body>
    </html>
</f:view>

my Bean class "formavar": 我的Bean类“formavar”:

package org.forma;

import org.imigrant.Migration.MigrationResult;
import org.imigrant.Migration.MigrationWS_PortType;
import org.imigrant.Migration.MigrationWS_Service;
import org.imigrant.Migration.MigrationWS_ServiceLocator;

/** libraries for Web Service*/
/**
 *
 * @author USER
 */
public class formavar {

    private String name;
    private String lastname;.....
 public String getName() {
        return name;
    }

    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return the surname
     */
    public String getLastname() {
        return lastname;
    }

    /**
     * @param surname the surname to set
     */
    public void setLastname(String lastname) {
        this.lastname = lastname;
    }......
 public String submitdetails() {
        String migrationURL = "http://localhost:8080/mule-tomcat/ESB/Migration?wsdl";
        MigrationResult registrationResult = new MigrationResult();

        try {

            MigrationWS_Service service = new MigrationWS_ServiceLocator(migrationURL);
            MigrationWS_PortType port = service.getMigrationImplPort();

            registrationResult = port.registerDoc(
                null,
                this.granting,
                this.expire_date,
        this.name,
        this.lastname,.............

                    );


            return "OK";

        } catch (Exception ex) {


            return "ERROR "+ex.getMessage();
        }


        //return "OK";
    }
}

and the config xml: 和配置xml:

 <managed-bean>
        <managed-bean-name>formabean</managed-bean-name>
        <managed-bean-class>org.forma.formavar</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>

java.lang.NoClassDefFoundError: org/apache/commons/discovery/tools/DiscoverSingleton java.lang.NoClassDefFoundError:org / apache / commons / discovery / tools / DiscoverSingleton

This just means that the mentioned class (or a JAR file containing the class) is missing in the webapp's runtime classpath. 这只是意味着webapp的运行时类路径中缺少所提到的类(或包含该类的JAR文件)。

As the package name hints, the class is part of Apache Commons Discovery which is available for download at http://commons.apache.org/discovery . 当包名称提示时,该类是Apache Commons Discovery的一部分,可从http://commons.apache.org/discovery下载。 If you just drop its JAR file(s) in /WEB-INF/lib of your webapp (which is covered by webapp's runtime classpath), then this error should disappear. 如果您只是将其JAR文件放在webapp的/WEB-INF/lib中(由webapp的运行时类路径覆盖),则此错误应该消失。

Note that this problem has nothing to do with JSF/JSP, let alone Java EE. 请注意,此问题与JSF / JSP 无关 ,更不用说Java EE了。 It's just basic Java. 它只是基本的Java。 The root cause of the exception also hints that; 异常的根本原因也暗示; it's of the java.lang package. 它是java.lang包的。

The specified classes are missing from the project classpath at the time of execution of the test. 执行测试时,项目类路径中缺少指定的类。

The solution is to add the following dependency to your pom: 解决方案是将以下依赖项添加到您的pom:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 线程“main”中的异常java.lang.NoClassDefFoundError:org / apache / commons / discovery / tools / DiscoverSingleton - Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/discovery/tools/DiscoverSingleton java.lang.NoClassDefFoundError:org / apache / commons / lang / text / StrLookup - java.lang.NoClassDefFoundError: org/apache/commons/lang/text/StrLookup java.lang.NoClassDefFoundError: org/apache/commons/lang/builder/CompareToBuilder - java.lang.NoClassDefFoundError: org/apache/commons/lang/builder/CompareToBuilder java.lang.NoClassDefFoundError:org.apache.commons.lang3.ArrayUtils - java.lang.NoClassDefFoundError: org.apache.commons.lang3.ArrayUtils java.lang.NoClassDefFoundError:org / apache / commons / lang3 / ObjectUtils - java.lang.NoClassDefFoundError: org/apache/commons/lang3/ObjectUtils java.lang.NoClassDefFoundError:org / apache / commons / lang / Validate - java.lang.NoClassDefFoundError: org/apache/commons/lang/Validate java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory - java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory java.lang.NoClassDefFoundError:org / apache / commons / vfs / FileSelector - java.lang.NoClassDefFoundError: org/apache/commons/vfs/FileSelector #java.lang.NoClassDefFoundError:org / apache / commons / digester / Digester - #java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester java.lang.NoClassDefFoundError: org/apache/commons/exec/Executor - java.lang.NoClassDefFoundError: org/apache/commons/exec/Executor
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM