You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Michael Feichtegger (JIRA)" <ji...@apache.org> on 2014/11/21 14:29:33 UTC

[jira] [Updated] (CAMEL-8071) DefaultPackageScanClassResolver unable to handle JAR-Files located at WEB-INF/lib

     [ https://issues.apache.org/jira/browse/CAMEL-8071?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Feichtegger updated CAMEL-8071:
---------------------------------------
    Description: 
We are creating a WebApplication which also provides camel endpoints.
One of the endpoints triggers a bindy action to read records from a fixed-length-record input file. For this purpose we are using camel bindy.

I this conjuction we discovered that there is an issue when trying to locate those classes which are annotated with {{@FixedLengthRecord}} since the are located in a JAR-File.

The project structure looks like this:

- project-ear
-- project-war
--- WEB-INF/lib/project-jar

If we locate the classes directly at WEB-INF/classes/my/package camel is able to discover the annotated classes.

After some debugging we have found out, that {{DefaultPackageScanClassResolver}} is trying to open an InputStream like this:

/opt/jboss-eap/current/standalone/deployments/bindy-ear.ear/bindy-ws-0.0.1-SNAPSHOT.war/WEB-INF/lib/bindy-core-0.0.1-SNAPSHOT.jar/my/package/

which of of course does not exist.
If you remove in those cases "/my/package" from the File the resolver works perfectly well since {{loadImplementationsInJar}} will be called correctly.


  was:
We are creating a WebApplication which also provides camel endpoints.
One of the endpoints triggers a bindy action to read records from a fixed-length-record input file. For this purpose we are using camel bindy.

I this conjuction we discovered that there is an issue when trying to locate those classes which are annotated with {{@FixedLengthRecord}} since the are located in a JAR-File.

The project structure looks like this:

- project-ear
-- project-war
--- WEB-INF/lib/project-jar

If we locate the classes directly at WEB-INF/classes/my/package camel is able to discover the annotated classes.

After some debugging we have found out, that DefaultPackageScanClassResolver is trying to open an InputStream like this:

/opt/jboss-eap/current/standalone/deployments/bindy-ear.ear/bindy-ws-0.0.1-SNAPSHOT.war/WEB-INF/lib/bindy-core-0.0.1-SNAPSHOT.jar/my/package/

which of of course to not exist.
If you remove in those cases "/my/package" from the File the resolver works perfectly well.



> DefaultPackageScanClassResolver unable to handle JAR-Files located at WEB-INF/lib
> ---------------------------------------------------------------------------------
>
>                 Key: CAMEL-8071
>                 URL: https://issues.apache.org/jira/browse/CAMEL-8071
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.13.2, 2.13.3
>         Environment: Ubuntu 14.04 (64bit)
> JBoss EAP 6.3
> Oracle JDK 1.6.0_45
>            Reporter: Michael Feichtegger
>             Fix For: 2.13.4
>
>
> We are creating a WebApplication which also provides camel endpoints.
> One of the endpoints triggers a bindy action to read records from a fixed-length-record input file. For this purpose we are using camel bindy.
> I this conjuction we discovered that there is an issue when trying to locate those classes which are annotated with {{@FixedLengthRecord}} since the are located in a JAR-File.
> The project structure looks like this:
> - project-ear
> -- project-war
> --- WEB-INF/lib/project-jar
> If we locate the classes directly at WEB-INF/classes/my/package camel is able to discover the annotated classes.
> After some debugging we have found out, that {{DefaultPackageScanClassResolver}} is trying to open an InputStream like this:
> /opt/jboss-eap/current/standalone/deployments/bindy-ear.ear/bindy-ws-0.0.1-SNAPSHOT.war/WEB-INF/lib/bindy-core-0.0.1-SNAPSHOT.jar/my/package/
> which of of course does not exist.
> If you remove in those cases "/my/package" from the File the resolver works perfectly well since {{loadImplementationsInJar}} will be called correctly.



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