tomee-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Wiesner (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (TOMEE-1683) Tests for JAX-RS Webservice based on EJBContainerRunner work in OpenEJB 4.7.3 but not in 7.0.0-M1
Date Tue, 22 Dec 2015 10:04:46 GMT

    [ https://issues.apache.org/jira/browse/TOMEE-1683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15067887#comment-15067887
] 

Martin Wiesner commented on TOMEE-1683:
---------------------------------------

Ok, the empty "{}" body in the put method makes a true difference. Request is then handled
correctly. However, I see in the JavaDoc of org.apache.cxf.jaxrs.client.WebClient: 

    /**
     * Does HTTP PUT invocation and returns typed response object
     * @param body request body, can be null
     * @param responseClass expected type of response object
     * @return typed object, can be null. Response status code and headers 
     *         can be obtained too, see Client.getResponse()
     */
    public <T> T put(Object body, Class<T> responseClass) {
        return invoke(HttpMethod.PUT, body, responseClass);
    }

"Can be null" -> so is this a weakness in the documentation at this point, or under which
circumstances do we need to put "{}" as body there? Maybe you could handle "null" values as
if this was "{}" as body? Couple of people used that pattern to build TestCases like that.
Reading this parameter gracefully as "{}" body could help and avoid broken builds ;-)

> Tests for JAX-RS Webservice based on EJBContainerRunner work in OpenEJB 4.7.3 but not
in 7.0.0-M1
> -------------------------------------------------------------------------------------------------
>
>                 Key: TOMEE-1683
>                 URL: https://issues.apache.org/jira/browse/TOMEE-1683
>             Project: TomEE
>          Issue Type: Bug
>          Components: TomEE Core Server
>    Affects Versions: 7.0.0-M1
>         Environment: MacOS-10.11.2 / Linux (Ubuntu 14.04 LTS) - Maven 3.3.9 - Java 8
(Oracle, 1.8.0-b66)
>            Reporter: Martin Wiesner
>            Priority: Critical
>              Labels: maven, test
>             Fix For: 7.0.0-M2
>
>
> I got a couple of JUnit Tests (> 200) based on @RunWith(EJBContainerRunner.class)
annotation which stopped working when codebase is updated to use/run with TomEE/OpenEJB 7.0.0-M1.

> I reproduced this on several projects and build a minimal example that shows that the
given Test passes with OpenEJB 4.7.3 and TomEE 1.7.3 (or: 1.7.2) but not when we use "7.0.0-M1".
The pom.xml of the example project has commented lines for the older variant in order to quickly
switch the environment.
> Demo Project is available for download here:
> https://download.mi.hs-heilbronn.de/tomee/ejb-container-runner-demo-ws.zip
> As it seems, the environment launched via "@EJBContainerRunner" does not start/expose
the JAX-RS annotated webservice endpoint so clients can send requests. Again, in 4.7.3/1.7.3
this worked like a charm. When we run the project via maven goal "tomee:run" the endpoint
is exposed and clients can successfully send requests and receive HTTP 20x codes as a reply.
> Maybe [~rmannibucau] could have a look at it?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message