2016-09-16 49 views
17

JMX seçeneklerini veya web.xml seçeneklerini kullanmadan WADL'yi devre dışı bırakmaya çalışıyorum. Basit JAX-RS Uygulama Sınıfı şöyle: WebLogic 12.2.1 üzerindeWebLogic12.2.1'de WADL devre dışı bırakılıyor

@ApplicationPath("resources") 
public class TestWADL 
    extends Application 
{ 
    public Map<String, Object> getProperties() 
    { 
    Map<String, Object> props = new HashMap(); 
    props.put("jersey.config.server.wadl.disableWadl", true); 
    return props; 
    } 
} 

o özellik 'true' ayarlandığında dağıtılan almaz. "Jersey.config.server.wadl.disableWadl", "com.jersey.config.server.wadl.disableWadl" olarak değiştirildiyse, o zaman dağıtılır, ancak WADL hala aktiftir. "Com.sun.jersey.config.server.wadl.disableWadl" ile de denedim ancak dağıtım gerçekleşir ancak WADL etkin. Dağıtım sırasında

Hata geçerli:

failed to preload on startup in Web application: "jersey-test". 
A MultiException has 1 exceptions. They are: 
1. org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at SystemInjecteeImpl(requiredType=WadlApplicationContext,parent=JaxRsMonitoringListener,qualifiers={},position=-1,optional=false,self=false,unqualified=null,1563651367) 

    at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:75) 
    at org.jvnet.hk2.internal.Utilities.justInject(Utilities.java:946) 
    at org.jvnet.hk2.internal.ServiceLocatorImpl.inject(ServiceLocatorImpl.java:981) 
    at org.jvnet.hk2.internal.ServiceLocatorImpl.inject(ServiceLocatorImpl.java:971) 
    at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:617) 
    at org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:184) 
    at org.glassfish.jersey.server.ApplicationHandler$3.call(ApplicationHandler.java:350) 
    at org.glassfish.jersey.server.ApplicationHandler$3.call(ApplicationHandler.java:347) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
    at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:255) 
    at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:347) 
    at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:390) 
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170) 
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:362) 
    at javax.servlet.GenericServlet.init(GenericServlet.java:244) 
    at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:343) 
    at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:294) 
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326) 
    at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:196) 
    at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203) 
    at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71) 
    at weblogic.servlet.internal.StubSecurityHelper.initServletInstance(StubSecurityHelper.java:99) 
    at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:93) 
    at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:69) 
    at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:57) 
    at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:36) 
    at weblogic.servlet.internal.ServletStubImpl.initStubLifecycleHelper(ServletStubImpl.java:666) 
    at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:612) 
    at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:2053) 
    at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:2030) 
    at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1919) 
    at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3063) 
    at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1830) 
    at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:875) 
    at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360) 
    at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:356) 
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45) 
    at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:138) 
    at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124) 
    at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:237) 
    at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:232) 
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45) 
    at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:82) 
    at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:52) 
    at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:753) 
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45) 
    at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:263) 
    at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:53) 
    at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165) 
    at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80) 
    at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:601) 
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:171) 
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:121) 
    at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:343) 
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:895) 
    at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1422) 
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:454) 
    at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:181) 
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:195) 
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:13) 
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:68) 
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:643) 
    at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348) 
    at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333) 
    at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54) 
    at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41) 
    at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:617) 
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:397) 
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:346) 
Caused By: org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at SystemInjecteeImpl(requiredType=WadlApplicationContext,parent=JaxRsMonitoringListener,qualifiers={},position=-1,optional=false,self=false,unqualified=null,1563651367) 
    at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:75) 
    at org.jvnet.hk2.internal.Utilities.justInject(Utilities.java:946) 
    at org.jvnet.hk2.internal.ServiceLocatorImpl.inject(ServiceLocatorImpl.java:981) 
    at org.jvnet.hk2.internal.ServiceLocatorImpl.inject(ServiceLocatorImpl.java:971) 
    at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:617) 
    at org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:184) 
    at org.glassfish.jersey.server.ApplicationHandler$3.call(ApplicationHandler.java:350) 
    at org.glassfish.jersey.server.ApplicationHandler$3.call(ApplicationHandler.java:347) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
    at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:255) 
    at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:347) 
    at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:390) 
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170) 
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:362) 
    at javax.servlet.GenericServlet.init(GenericServlet.java:244) 
    at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:343) 
    at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:294) 
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326) 
    at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:196) 
    at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203) 
    at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71) 
    at weblogic.servlet.internal.StubSecurityHelper.initServletInstance(StubSecurityHelper.java:99) 
    at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:93) 
    at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:69) 
    at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:57) 
    at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:36) 
    at weblogic.servlet.internal.ServletStubImpl.initStubLifecycleHelper(ServletStubImpl.java:666) 
    at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:612) 
    at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:2053) 
    at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:2030) 
    at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1919) 
    at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3063) 
    at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1830) 
    at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:875) 
    at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360) 
    at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:356) 
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45) 
    at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:138) 
    at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124) 
    at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:237) 
    at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:232) 
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45) 
    at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:82) 
    at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:52) 
    at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:753) 
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45) 
    at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:263) 
    at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:53) 
    at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165) 
    at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80) 
    at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:601) 
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:171) 
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:121) 
    at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:343) 
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:895) 
    at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1422) 
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:454) 
    at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:181) 
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:195) 
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:13) 
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:68) 
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:643) 
    at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348) 
    at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333) 
    at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54) 
    at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41) 
    at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:617) 
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:397) 
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:346) 
+1

Hey, aynı istisna ile karşı karşıyayım, bunu çözmek için herhangi bir başarı elde ettiniz mi? –

+1

"jersey.config.server.wadl.disableWadl" anahtarı doğru. Sisteminizi, jax-rs ve genel özellikler için tam olarak nasıl yapılandırırsınız? –

+2

Aynı sorunu yaşıyorum ve bir hataya benziyor (WLS12.1.3 üzerinde başarılı bir şekilde çalıştığını unutmayın). Bilgi için Oracle Desteği'nde bir SR açtım. – Rouliboy

cevap

0

Ben aşağıda/devre dışı bırakma (sen web.xml''deki özelliği belirtmediyse) dinamik WadL etkinleştirmek için bir yol bulduk:

package client; 

import javax.ws.rs.POST; 
import javax.ws.rs.Path; 
import javax.ws.rs.core.Context; 

import org.glassfish.jersey.server.wadl.WadlApplicationContext; 

@Path("test") 
public class MyJersey { 
    public MyJersey() { 
     super(); 
    } 
    @Path("switchwadl") 
    @POST 
    public void switchMethod(@Context WadlApplicationContext wadlApplicationContext) { 
     wadlApplicationContext.setWadlGenerationEnabled(!wadlApplicationContext.isWadlGenerationEnabled()); 
    } 
} 
0

Jersey tarafından sağlanan varsayılan WADL jeneratörünü bir şey GERÇEKLEMEZ.

official example, bir başlangıç ​​noktası verir.