[arquillian-issues] [JBoss JIRA] (ARQ-2003) Arquillian Graphene/Drone tests use wrong port to access WebLogic managed server

Paul Holding (JIRA) issues at jboss.org
Mon Dec 14 07:32:00 EST 2015


Paul Holding created ARQ-2003:
---------------------------------

             Summary: Arquillian Graphene/Drone tests use wrong port to access WebLogic managed server
                 Key: ARQ-2003
                 URL: https://issues.jboss.org/browse/ARQ-2003
             Project: Arquillian
          Issue Type: Bug
          Components: WebLogic Containers
         Environment: WebLogic version 12.2.1
arquillian-wls-remote-rest version 1.0.0.Final
arquillian-bom version 1.1.10.Final
arquillian-drone-bom version 1.3.1.Final
arquillian-drone-bom version 2.0.3 Final

The Arquillian integraition test and the WebLogic container are running on different hosts.
            Reporter: Paul Holding
            Assignee: Vineet Reynolds


When using Arquillian to perform integration tests in client mode for an archive that is deployed to a WebLogic 12c R2 container, the wrong port number is being used in the URL accessed by Arquillian Graphene/Drone. When the browser is launched by the test, the port assigned to the WebLogic Admin server is used rather than the port assigned the WebLogic Managed server, which means container returns an HTTP 404 error causing the test case to fail.

I've worked through the code for the various Arquillian components and I believe I've found the root cause of the problem. The problem appears to be in the [RESTUtils|https://github.com/arquillian/arquillian-container-wls/blob/master/wls-common/src/main/java/org/jboss/arquillian/container/wls/rest/RESTUtils.java] class of the "wls-common" module which contains the {{deploy(CommonWebLogicConfiguration config, Logger logger, Archive<?> archive)}} method which is responsible for deploying the archive to the WebLogic Managed server and returning the {{ProtocolMetaData}} back to Arquillian. The {{ProtocolMetaData}} is subsequently used by Arquillian Graphene/Drone to access the web page.

Within this method is the following line of code  {{HTTPContext httpContext = new HTTPContext(adminUrl.getHost(), adminUrl.getPort());}} which used to build the {{ProtocolMetaData}} object. This means that the admin port is being used instead of the port assigned to the Managed server.

Assuming I've correctly identified the root cause, I don't believe that this Arquillian container adapter can be used with WebLogic 12c R2. The same integration test works fine on other containers such as GlassFish and WildFly.

The Maven dependency for the WebLogic container adapter in my POM file is as follows:

{code:java}
<dependency>
    <groupId>org.jboss.arquillian.container</groupId>
    <artifactId>arquillian-wls-remote-rest</artifactId>
    <version>1.0.0.Final</version>
</dependency>
{code}

The entry in my arquillian.xml file is as follows:

{code:java}
<container qualifier="arquillian-weblogic-rest">
    <configuration>
        <property name="adminUrl">http://xxxx:7001</property>
        <property name="adminUserName">weblogic</property>
        <property name="adminPassword">xxxx</property>
        <property name="target">wls_server_1</property>
    </configuration>
    <protocol type="Servlet 3.0">
        <property name="host">xxxx</property>
        <property name="port">8080</property>
    </protocol>
</container>
{code}

The version of WebLogic I'm using is 12.2.1

As the WebLogic container is running on a separate host, I believe I need to use the REST adapter rather than the remote adapter, as the remote adapter appears to require the Arquillian test to run on the same host as the WebLogic container.



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the arquillian-issues mailing list