java - Jira Rest Java 客户端的 ClassNotDef 异常

标签 java rest maven jira jira-rest-java-api

我有一个 Jira Rest Java 客户端,它可以作为独立的 Java 应用程序完美运行,但是当我将它与 Tomcat 服务器一起使用以使用 Maven 创建动态 Web 应用程序时,它会抛出以下堆栈跟踪:

java.lang.ClassNotFoundException: org.springframework.beans.factory.DisposableBean
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2918)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1174)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1669)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
at com.atlassian.jira.rest.client.internal.async.AsynchronousHttpClientFactory.createClient(AsynchronousHttpClientFactory.java:53)
at com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory.create(AsynchronousJiraRestClientFactory.java:35)
at com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory.createWithBasicHttpAuthentication(AsynchronousJiraRestClientFactory.java:42)
at ReferenceClass.ListOfProjects(ReferenceClass.java:20)
at GetProjectList.doGet(GetProjectList.java:47)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

我正在使用他下面的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.javarticles.webapp</groupId>
<artifactId>webappExample</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>webappExample Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
    </dependency>
    <dependency>
        <groupId>org.openengsb.wrapped</groupId>
        <artifactId>jira-rest-java-client-api</artifactId>
        <version>2.0.0-m32.w1</version>
        <exclusions>
            <exclusion>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>org.openengsb.wrapped</groupId>
        <artifactId>jira-rest-java-client-core</artifactId>
        <version>2.0.0-m32.w1</version>
    </dependency>

</dependencies>
<build>
    <finalName>webappExample</finalName>
</build>

我的程序如下:

import java.io.IOException;
import java.net.URISyntaxException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 * Servlet implementation class HelloWorldServlet
 */
@WebServlet("/GetProjectList")
public class GetProjectList extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public GetProjectList() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.setContentType("text/html");
        response.setCharacterEncoding("UTF-8");
       /* 
        try {
            r.ListOfProjects();
        } catch (URISyntaxException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }*/
        response.getWriter().write("Success111");
        response.getWriter().flush();
        response.getWriter().close();
        ReferenceClass r = new ReferenceClass();
        try {
            r.ListOfProjects();
        } catch (URISyntaxException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

引用类代码

public class ReferenceClass {
    public ArrayList<String> ListOfProjects() throws URISyntaxException,    IOException {
        String username = "xxxxx";
        String password = "xxxxx";
        ArrayList<String> list = null ;
         URI jiraserverURI = new URI("https://jira.xxxxx.com");
         JiraRestClientFactory restClientfactory = new AsynchronousJiraRestClientFactory();
         JiraRestClient Client = restClientfactory.createWithBasicHttpAuthentication(jiraserverURI, username,
                password);

        try {
            Iterable<BasicProject> allproject =  Client.getProjectClient().getAllProjects().claim();
            list = new ArrayList<String>();
            for (BasicProject project : allproject) {
                list.add(project.getName());
            }

            System.out.println( "--------" + list);

        } catch (Exception e) {
            System.out.println("Exception found " + e);
        }
        return list;
    }
}

如果有人遇到过这种情况,请告诉我解决方案。

最佳答案

您尚未为 org.springframework.beans.factory.DisposableBean 类添加任何依赖项。

我猜添加

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>1.0</version>
</dependency>

应该能解决你的问题。如果不, 检查here找到包含您的类的依赖项并添加正确的依赖项。

关于java - Jira Rest Java 客户端的 ClassNotDef 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31571271/

相关文章:

eclipse - 将 Maven 编译器插件与 Eclipse 编译器和 Lombok 结合使用

javascript - 嵌套 Observables 在 Ionic2/Angular2 应用程序中表现不同

ruby-on-rails - 为什么 Ruby on Rails 书籍或引用文献总是说 Update 是 PUT 而 Destroy 是 DELETE 而不是?

rest - 如何通过 REST 获取 TFS 集合列表?

java - 使用 Maven 为 Flex 构建 Spring 示例

java - Neo4j 服务器启动异常

java - 检查 Json 中是否有两个或多个相等的值

java - IntelliJ IDEA 中通过 Gradle 的 OptaPlanner 依赖项

java - "on-heap"和 "off-heap"之间的区别

java - 连接到 HTTPS url 并发布到它