What TCCL is set when you are creating the client/client builder ? AFAIK Resteasy will use the TCCL to look for providers in this case, so if it is not set to your modules TCCL you may have problems.

Stuart

On Mon, 8 Jun 2015 at 19:41 Josh Kinlaw <jkinlaw@redhat.com> wrote:
Hi Wildfly,

I am running into what appears to be a module.xml issue. I am using resteasy to post a multipart/form-data entity but am running into the following exception at runtime:

12:56:34,869 ERROR [stderr] (Thread-91) javax.ws.rs.ProcessingException: Unable to invoke request
12:56:34,869 ERROR [stderr] (Thread-91)         at org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.invoke(ApacheHttpClient4Engine.java:287)
12:56:34,870 ERROR [stderr] (Thread-91)         at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.invoke(ClientInvocation.java:407)
12:56:34,870 ERROR [stderr] (Thread-91)         at org.jboss.resteasy.client.jaxrs.internal.ClientInvocationBuilder.post(ClientInvocationBuilder.java:195)
12:56:34,870 ERROR [stderr] (Thread-91)         at com.redhat.gss.redhat_support_lib.infrastructure.BaseQuery.upload(BaseQuery.java:169)
12:56:34,870 ERROR [stderr] (Thread-91)         at org.jboss.as.telemetry.extension.TelemetryService.sendJdr(TelemetryService.java:354)
12:56:34,870 ERROR [stderr] (Thread-91)         at org.jboss.as.telemetry.extension.TelemetryService.access$300(TelemetryService.java:34)
12:56:34,871 ERROR [stderr] (Thread-91)         at org.jboss.as.telemetry.extension.TelemetryService$1.run(TelemetryService.java:120)
12:56:34,871 ERROR [stderr] (Thread-91) Caused by: javax.ws.rs.ProcessingException: could not find writer for content-type multipart/form-data type: org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataOutput
12:56:34,871 ERROR [stderr] (Thread-91)         at org.jboss.resteasy.core.interception.ClientWriterInterceptorContext.throwWriterNotFoundException(ClientWriterInterceptorContext.java:40)
12:56:34,871 ERROR [stderr] (Thread-91)         at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.getWriter(AbstractWriterInterceptorContext.java:138)
12:56:34,871 ERROR [stderr] (Thread-91)         at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:117)
12:56:34,871 ERROR [stderr] (Thread-91)         at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.writeRequestBody(ClientInvocation.java:341)
12:56:34,872 ERROR [stderr] (Thread-91)         at org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.writeRequestBodyToOutputStream(ApacheHttpClient4Engine.java:558)
12:56:34,872 ERROR [stderr] (Thread-91)         at org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.buildEntity(ApacheHttpClient4Engine.java:524)
12:56:34,872 ERROR [stderr] (Thread-91)         at org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.loadHttpMethod(ApacheHttpClient4Engine.java:423)
12:56:34,872 ERROR [stderr] (Thread-91)         at org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.invoke(ApacheHttpClient4Engine.java:281)
12:56:34,872 ERROR [stderr] (Thread-91)         ... 6 more

I'm including resteasy-multipart-provider in my submodule's pom and module.xml and if I run the unit tests for the submodule (redhat-support-lib) everything passes. This leads me to believe it is an issue with the module.xml of either resteasy-multipart-provider or redhat-support-lib. Below are the module.xml's:

resteasy-multipart-provider:

<?xml version="1.0" encoding="UTF-8"?>

<module xmlns="urn:jboss:module:1.3" name="org.jboss.resteasy.resteasy-multipart-provider">

    <resources>
        <resource-root path="resteasy-multipart-provider-3.0.11.Final.jar"/>
    </resources>

    <dependencies>
        <module name="javax.xml.bind.api"/>
        <module name="javax.api"/>
        <module name="javax.enterprise.api"/>
        <module name="javax.mail.api"/>
        <module name="javax.servlet.api"/>
        <module name="javax.ws.rs.api"/>
        <module name="org.apache.james.mime4j"/>
        <module name="org.jboss.resteasy.resteasy-jaxb-provider"/>
        <module name="org.jboss.resteasy.resteasy-jaxrs"/>
        <module name="org.jboss.resteasy.tjws"/>
    </dependencies>
</module>


redhat-support-lib:

<module xmlns="urn:jboss:module:1.0" name="com.redhat.gss.redhat-support-lib">
    <resources>
        <resource-root path="jboss-redhat-support-lib.jar"/>
    </resources>

    <dependencies>
        <module name="javax.api"/>
        <module name="javax.ws.rs.api"/>
        <module name="javax.net.ssl"/>
        <module name="org.apache.commons.net"/>
        <module name="org.apache.httpcomponents"/>
        <module name="org.jboss.staxmapper"/>
        <module name="org.jboss.as.controller"/>
        <module name="org.jboss.as.server"/>
        <module name="org.jboss.modules"/>
        <module name="org.jboss.msc"/>
        <module name="org.jboss.logging"/>
        <module name="org.jboss.resteasy.resteasy-multipart-provider" services="export" export="true"/>
        <module name="org.jboss.resteasy.resteasy-jaxrs"/>
        <module name="org.jboss.vfs"/>
    </dependencies>
</module>


I'm a little stuck at this point. Does anyone have any ideas? My git repo is at https://github.com/Kinlaw/wildfly/tree/telemetry.

Josh Kinlaw


_______________________________________________
wildfly-dev mailing list
wildfly-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/wildfly-dev