La mia webapp contiene una libreria che contiene una classe annotata con @javax.ws.rs.ext.Provider
. Se questa classe è presente, il mio webapp (schierato come WAR all'interno di un EAR) non si avvia con il seguente errore:Weblogic: disabilita scansione jersey
<19-Jun-2014 14:41:50 o'clock BST> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID "1403185262187" for task "2". Error is: "weblogic.application.ModuleException: com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes."
weblogic.application.ModuleException: com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes.
at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:140)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:213)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:208)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
Truncated. see log file for complete stacktrace
Caused By: com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes.
at com.sun.jersey.server.impl.application.RootResourceUriRules.<init>(RootResourceUriRules.java:99)
at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1331)
at com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:168)
at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:774)
at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:770)
Truncated. see log file for complete stacktrace
non sto usando jersey a tutti, non sto usando qualsiasi JAX-RS servizi, e il mio web.xml non contiene servlet relativi alla jersey. Non capisco perché weblogic inizializza la jersey e analizza i barattoli nella mia applicazione per cose correlate a jaxrs.
La maggior parte delle informazioni che posso trovare su Internet relative a questo si traduce in persone che configurano il loro servlet jersey in modo diverso. Ma non ne ho uno da configurare ...
Io non controllo la libreria incriminata, quindi rimuovere la classe non è un'opzione.
Quindi, come posso dire a weblogic di non analizzare le mie classi quando inizializza la maglia?
Si noti che ciò è accaduto dopo aver cambiato il mio web.xml in servlet 3.0 anziché in 2.4. Se lo cambio a 2.4, tutto va bene.
Sto usando weblogic 12.1.2.0 (12c).
Aggiornamento: risulta che la scansione JAX-RS è una caratteristica chiave di Javaee 6: l'idea è di inserire le classi annotate nella webapp e non è necessario eseguire alcuna configurazione per visualizzarle come REST webservice.
Voglio solo chiedere se è stata trovata o meno una soluzione pertinente al problema. Puoi suggerire un lavoro perché sto affrontando lo stesso problema. :( Possiamo dire a Weblogic di non cercare i barattoli di Jersey mentre si usa la versione servlet a 3.0 nel web.xml ?? – JavaBeigner
Qualsiasi aggiornamento sul mio problema? – JavaBeigner