有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Junit 4 Arquillian WebLogic 12c ClassNotFound

我得到了一个例外:

org.jboss.arquillian.container.spi.client.container.DeploymentException: java.lang.ClassNotFoundException: org.apache.http.client.methods.HttpUriRequest

我正在用Junit 4+Arquillian+WebLogic以各种方式测试企业应用程序。但总有找不到类的问题。我在网上什么也没找到 我的本地应用服务器->WebLogic Server: 12.2.1.3.0

父POM:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.11</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.12.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.12.1</version>
        </dependency>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct</artifactId>
            <version>${org.mapstruct.version}</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.shrinkwrap.resolver</groupId>
            <artifactId>shrinkwrap-resolver-bom</artifactId>
            <version>3.1.4</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>org.jboss.arquillian</groupId>
            <artifactId>arquillian-bom</artifactId>
            <version>1.6.0.Final</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
    </dependencies>
</dependencyManagement>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.17</version>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <showDeprecation>true</showDeprecation>
                <showWarnings>true</showWarnings>
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.mapstruct</groupId>
                        <artifactId>mapstruct-processor</artifactId>
                        <version>${org.mapstruct.version}</version>
                    </path>
                    <path>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>${lombok.version}</version>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
    </plugins>
</build>

POM Junit在哪里:

<dependencies>
    <dependency>
        <groupId>it.gc.ss</groupId>
        <artifactId>GCGateway-common</artifactId>
        <version>${project.version}</version>
    </dependency>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>it.gc.ss</groupId>
        <artifactId>GCGateway-ejb</artifactId>
        <version>${project.version}</version>
        <scope>test</scope>
    </dependency>
    <!-- arquillian -->
    <dependency>
        <groupId>org.jboss.arquillian.junit</groupId>
        <artifactId>arquillian-junit-container</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.jboss.arquillian.container</groupId>
        <artifactId>arquillian-wls-remote-rest</artifactId>
        <version>1.0.1.Final</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
    </dependency>
    <dependency>
        <groupId>org.jboss.shrinkwrap.resolver</groupId>
        <artifactId>shrinkwrap-resolver-api</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.jboss.shrinkwrap.resolver</groupId>
        <artifactId>shrinkwrap-resolver-spi</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.jboss.shrinkwrap.resolver</groupId>
        <artifactId>shrinkwrap-resolver-api-maven</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.jboss.shrinkwrap.resolver</groupId>
        <artifactId>shrinkwrap-resolver-spi-maven</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.jboss.shrinkwrap.resolver</groupId>
        <artifactId>shrinkwrap-resolver-impl-maven</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.jboss.shrinkwrap.resolver</groupId>
        <artifactId>shrinkwrap-resolver-impl-maven-archive</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-aether-provider</artifactId>
        <version>3.3.9</version>
        <scope>test</scope>
    </dependency>
</dependencies>

我是阿奎利安。xml:

<?xml version="1.0"?>
<arquillian
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://jboss.org/schema/arquillian"
                xsi:schemaLocation="http://jboss.org/schema/arquillian
                        http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
    <!--
            <engine><property name="deploymentExportPath">target/</property></engine>
            -->
    <container qualifier="weblogic" default="true">
        <defaultProtocol type="Servlet 3.0" />
        <configuration>
            <property name="wlHome">C:/Oracle/Middleware/Oracle_Home/wlserver</property>
            <property name="adminUrl">http://localhost:7001</property>
            <property name="adminUserName">weblogic</property>
            <property name="adminPassword">password</property>
            <property name="target">AdminServer</property>
        </configuration>
    </container>
</arquillian>

最后这是我的测试课

import lombok.extern.log4j.Log4j2;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.container.test.api.RunAsClient;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.Archive;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.jboss.shrinkwrap.resolver.api.maven.Maven;
import org.junit.Test;
import org.junit.runner.RunWith;

import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.io.File;
import java.net.URISyntaxException;
import java.net.URL;

@Log4j2
@RunWith(Arquillian.class)
public class GCGatewayTest {

 @Deployment
 public static Archive < ? > createDeployment() {

  EnterpriseArchive ear = ShrinkWrap
   .create(EnterpriseArchive.class, "GCGateway.ear");

  //Common dependencies
  File[] commonDependecies = Maven.configureResolver()
   .fromFile("C:\\GC\\B2B\\apache-maven-3.6.3\\conf\\settings.xml")
   .loadPomFromFile("C:\\GC\\B2B\\progetti\\GCGateway\\trunk\\pom.xml")
   .importRuntimeDependencies()
   .resolve("it.gc.ss:GCGateway-common:1.0.0-SNAPSHOT")
   .withTransitivity()
   .asFile();

  File[] toAdd = new File[commonDependecies.length - 1];
  int i = 0;
  for (File f: commonDependecies) {

   if (f.getName().startsWith("GCGateway-common")) {
    continue;
   }

   toAdd[i] = f;
   i++;
  }

  ear.addAsLibraries(toAdd);

  JavaArchive common = ShrinkWrap.create(JavaArchive.class, "GCGateway-common.jar")
   .addPackages(true, "it.gc.ss.gcgateway.common")
   .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
   .addAsResource("log4j2.xml")
   .addAsResource("configuration.properties");
  log.info(common.toString(true));
  log.info("---------------");
  ear.addAsLibraries(common);

  JavaArchive ejb = ShrinkWrap.create(JavaArchive.class, "GCGateway-ejb.jar")
   .addPackages(true, "it.gc.ss.gcgateway.ejb")
   .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
  log.info(ejb.toString(true));
  log.info("---------------");
  WebArchive ws = ShrinkWrap.create(WebArchive.class, "GCGateway-ws.war")
   .addPackages(true, "it.gc.ss.gcgateway.ws")
   .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");

  log.info(ws.toString(true));
  log.info("---------------");

  ear.addAsModule(ws);
  ear.addAsModule(ejb);
  ear.setApplicationXML("application.xml");
  log.info("---------------");

  log.info(ear.toString(true));

  return ear;
 }

 @Test
 @RunAsClient
 public void myTest(@ArquillianResource URL url) throws URISyntaxException {
  WebTarget target = ClientBuilder.newClient()
   .target(url.toURI())
   .path("api")
   .path("gctool")
   .path("greet");
  log.info(target.toString());
  Response response = target
   .request(MediaType.APPLICATION_JSON_TYPE)
   .get();
  log.info(response.toString());
  log.info("OK");
 }
}

这是个例外:

org.jboss.arquillian.container.spi.client.container.DeploymentException: java.lang.ClassNotFoundException: org.apache.http.client.methods.HttpUriRequest

at org.jboss.arquillian.container.wls.rest.RESTUtils.deploy(RESTUtils.java: 227) at org.jboss.arquillian.container.wls.remote.rest.RemoteContainer.deploy(RemoteContainer.java: 63) at org.jboss.arquillian.container.wls.remote.rest.WebLogicContainer.deploy(WebLogicContainer.java: 63) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$3.call(ContainerDeployController.java: 151) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$3.call(ContainerDeployController.java: 118) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.executeOperation(ContainerDeployController.java: 239) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.deploy(ContainerDeployController.java: 118) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43) at java.lang.reflect.Method.invoke(Method.java: 498) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java: 86) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java: 103) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java: 90) at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createContainerContext(ContainerDeploymentContextHandler.java: 54) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43) at java.lang.reflect.Method.invoke(Method.java: 498) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java: 86) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java: 95) at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createDeploymentContext(ContainerDeploymentContextHandler.java: 71) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43) at java.lang.reflect.Method.invoke(Method.java: 498) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java: 86) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java: 95) at org.jboss.arquillian.container.impl.client.container.DeploymentExceptionHandler.verifyExpectedExceptionDuringDeploy(DeploymentExceptionHandler.java: 47) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43) at java.lang.reflect.Method.invoke(Method.java: 498) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java: 86) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java: 95) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java: 133) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java: 105) at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java: 62) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$1.perform(ContainerDeployController.java: 92) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$1.perform(ContainerDeployController.java: 77) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.forEachDeployment(ContainerDeployController.java: 232) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.forEachManagedDeployment(ContainerDeployController.java: 212) at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.deployManaged(ContainerDeployController.java: 77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43) at java.lang.reflect.Method.invoke(Method.java: 498) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java: 86) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java: 103) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java: 90) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java: 133) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java: 105) at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java: 62) at org.jboss.arquillian.container.test.impl.client.ContainerEventController.execute(ContainerEventController.java: 96) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43) at java.lang.reflect.Method.invoke(Method.java: 498) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java: 86) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java: 103) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java: 90) at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java: 83) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43) at java.lang.reflect.Method.invoke(Method.java: 498) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java: 86) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java: 95) at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java: 69) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43) at java.lang.reflect.Method.invoke(Method.java: 498) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java: 86) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java: 95) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java: 133) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java: 105) at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.beforeClass(EventTestRunnerAdaptor.java: 89) at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java: 163) at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java: 350) at org.jboss.arquillian.junit.Arquillian.access$200(Arquillian.java: 54) at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java: 177) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java: 306) at org.junit.runners.ParentRunner.run(ParentRunner.java: 413) at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java: 115) at org.junit.runner.JUnitCore.run(JUnitCore.java: 137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java: 68) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java: 33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java: 230) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java: 58) Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: org.apache.http.client.methods.HttpUriRequest ...90 more


共 (0) 个答案