简体   繁体   English

Wso2 Jax-RS服务项目无法加载Wso2依赖项

[英]Wso2 Jax-RS Service project cant load Wso2 dependencies

I am developing a Jax-RS Service project using the Wso2 Development Studio. 我正在使用Wso2 Development Studio开发Jax-RS Service项目。 I want to use some classes of other Wso2 modules. 我想使用其他Wso2模块的某些类。 So i try to include those in the project as maven dependencies. 因此,我尝试将这些作为maven依赖项包含在项目中。

However it seems that i am doing something wrong because i can not make the dependencies to work. 但是似乎我做错了,因为我无法使依赖项正常工作。

For example i am having these dependencies 例如我有这些依赖

 <dependencies>
    <dependency>
      <groupId>javax.ws.rs</groupId>
      <artifactId>jsr311-api</artifactId>
      <version>1.1.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.wso2.carbon</groupId>
      <artifactId>org.wso2.carbon.user.core</artifactId>
      <version>4.2.0</version>
    </dependency>
    <dependency>
      <groupId>org.wso2.carbon</groupId>
      <artifactId>org.wso2.carbon.core</artifactId>
      <version>4.2.0</version>
    </dependency>
    <dependency>
      <groupId>org.wso2.carbon</groupId>
      <artifactId>org.wso2.carbon.core.common</artifactId>
      <version>4.2.0</version>
    </dependency>
  </dependencies>

But when i try to use something out of those packages i get a class not found 但是,当我尝试使用这些软件包中的某些东西时,却找不到类

import javax.naming.directory.DirContext;
import javax.ws.rs.*;
import org.wso2.carbon.user.core.UserStoreException;


@Path("/")
public class Users {

    @GET
    public String getUsers()
    {
        return "this is v0.0.1";
    }

    @POST
    @Consumes("application/json")
    public String createUser() throws UserStoreException
    {
        throw new UserStoreException("this is an erro message but it worked");
        return "creatd";
    }
}

In this example the UserStoreException can't even be imported. 在此示例中,甚至无法导入UserStoreException

This is how i import the packages needed 这就是我导入所需软件包的方式

<plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>3.3.0</version>
        <extensions>true</extensions>
        <configuration>
          <obrRepository>NONE</obrRepository>
          <instructions>
            <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
            <Bundle-Name>${project.artifactId}</Bundle-Name>
            <Bundle-Version>0.0.1</Bundle-Version>
                        <Export-Package>
                            example.*
                        </Export-Package>
            <Import-Package>
                  org.wso2.carbon.*,
                  org.apache.commons.logging.*,
                  org.osgi.framework.*,
                  javax.naming.*,
                  org.osgi.service.component.*
           </Import-Package>
          </instructions>
        </configuration>
      </plugin> 

do i have something wrong in the import ? 我的进口货有问题吗?

What should i do to import Wso2 dependencies successfully? 如何成功导入Wso2依赖项?

Here is the full exception stack trace on the server: 这是服务器上完整的异常堆栈跟踪:

type Exception report

message Servlet.init() for servlet cxf threw exception

description The server encountered an internal error that prevented it from fulfilling this request.

exception

    javax.servlet.ServletException: Servlet.init() for servlet cxf threw exception
        org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
        org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        org.wso2.carbon.identity.context.rewrite.valve.TenantContextRewriteValve.invoke(TenantContextRewriteValve.java:72)
        org.wso2.carbon.identity.authz.valve.AuthorizationValve.invoke(AuthorizationValve.java:91)
        org.wso2.carbon.identity.auth.valve.AuthenticationValve.invoke(AuthenticationValve.java:60)
        org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)
        org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
        org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57)
        org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
        org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)
        org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159)
        org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:958)
        org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
        org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452)
        org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
        org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
        org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1756)
        org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1715)
        java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        java.lang.Thread.run(Thread.java:748)
    root cause

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'UsersBean' defined in URL [jndi:/localhost/wso2usersapi-0.0.1/WEB-INF/cxf-servlet.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/wso2/carbon/user/core/UserStoreException
        org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:526)
        org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
        org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
        org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
        org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
        org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
        org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
        org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
        org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
        org.apache.cxf.transport.servlet.CXFServlet.createSpringContext(CXFServlet.java:151)
        org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:74)
        org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:76)
        org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
        org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        org.wso2.carbon.identity.context.rewrite.valve.TenantContextRewriteValve.invoke(TenantContextRewriteValve.java:72)
        org.wso2.carbon.identity.authz.valve.AuthorizationValve.invoke(AuthorizationValve.java:91)
        org.wso2.carbon.identity.auth.valve.AuthenticationValve.invoke(AuthenticationValve.java:60)
        org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)
        org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
        org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57)
        org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
        org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)
        org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159)
        org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:958)
        org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
        org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452)
        org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
        org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
        org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1756)
        org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1715)
        java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        java.lang.Thread.run(Thread.java:748)
    root cause

    java.lang.NoClassDefFoundError: org/wso2/carbon/user/core/UserStoreException
        java.lang.Class.getDeclaredMethods0(Native Method)
        java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
        java.lang.Class.getDeclaredMethods(Class.java:1975)
        org.apache.cxf.common.util.ReflectionUtil$6.run(ReflectionUtil.java:127)
        org.apache.cxf.common.util.ReflectionUtil$6.run(ReflectionUtil.java:125)
        java.security.AccessController.doPrivileged(Native Method)
        org.apache.cxf.common.util.ReflectionUtil.getDeclaredMethods(ReflectionUtil.java:125)
        org.apache.cxf.common.annotation.AnnotationProcessor.processMethods(AnnotationProcessor.java:85)
        org.apache.cxf.common.annotation.AnnotationProcessor.accept(AnnotationProcessor.java:72)
        org.apache.cxf.common.injection.ResourceInjector.inject(ResourceInjector.java:118)
        org.apache.cxf.common.injection.ResourceInjector.inject(ResourceInjector.java:112)
        org.apache.cxf.bus.spring.Jsr250BeanPostProcessor.postProcessBeforeInitialization(Jsr250BeanPostProcessor.java:136)
        org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:393)
        org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1415)
        org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:518)
        org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
        org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
        org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
        org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
        org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
        org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
        org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
        org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
        org.apache.cxf.transport.servlet.CXFServlet.createSpringContext(CXFServlet.java:151)
        org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:74)
        org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:76)
        org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
        org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        org.wso2.carbon.identity.context.rewrite.valve.TenantContextRewriteValve.invoke(TenantContextRewriteValve.java:72)
        org.wso2.carbon.identity.authz.valve.AuthorizationValve.invoke(AuthorizationValve.java:91)
        org.wso2.carbon.identity.auth.valve.AuthenticationValve.invoke(AuthenticationValve.java:60)
        org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)
        org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
        org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57)
        org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
        org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)
        org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159)
        org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:958)
        org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
        org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452)
        org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
        org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
        org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1756)
        org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1715)
        java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        java.lang.Thread.run(Thread.java:748)

Since wso2 artifacts are not synched with the maven central you may get errors when trying to build the project. 由于wso2工件未与Maven Central同步,因此在尝试构建项目时可能会出错。 Could you please add the following repositories to your pom.xml and do the build. 您能否将以下存储库添加到pom.xml并进行构建。

<repositories>
        <!-- WSO2 released artifact repository -->
        <repository>
            <id>wso2.releases</id>
            <name>WSO2 Releases Repository</name>
            <url>http://maven.wso2.org/nexus/content/repositories/releases/</url>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>daily</updatePolicy>
                <checksumPolicy>ignore</checksumPolicy>
            </releases>
        </repository>

        <!-- WSO2 Snapshot artifact repository -->
        <repository>
            <id>wso2.snapshots</id>
            <name>WSO2 Snapshot Repository</name>
            <url>http://maven.wso2.org/nexus/content/repositories/snapshots/</url>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>daily</updatePolicy>
            </snapshots>
            <releases>
                <enabled>false</enabled>
            </releases>
        </repository>

        <repository>
            <id>wso2-nexus</id>
            <name>WSO2 internal Repository</name>
            <url>http://maven.wso2.org/nexus/content/groups/wso2-public/</url>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>daily</updatePolicy>
                <checksumPolicy>ignore</checksumPolicy>
            </releases>
        </repository>
    </repositories>

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM