部署

时间:2018-04-18 17:25:20

标签: oracle servlets netbeans weblogic

我正在使用WebLogic 12.2.1和NetBeans开发REST应用程序。

在NetBeans内部,我使用本地主机并进行部署而没有任何问题。

当我使用Orcacle WebLogic管理工具时,系统会抛出NullPointerException。

这是ApplicationConfig:

import com.owlike.genson.ext.jaxrs.GensonJsonConverter;
import javax.ws.rs.ApplicationPath;
import org.glassfish.jersey.server.ResourceConfig;

/**
 *
 * @author Leandro.Tietbohl
 */
@ApplicationPath("service")
public class ApplicationConfig extends ResourceConfig {

    public ApplicationConfig() {
        register(GensonJsonConverter.class);
        packages("br.com.sicredi.programassociais.rest.service");
    }
}

这是weblogic.xml:

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" 
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.8/weblogic-web-app.xsd">
    <jsp-descriptor>
        <keepgenerated>true</keepgenerated>
        <debug>true</debug>
    </jsp-descriptor>
    <context-root>/sicredi-programas-sociais-rest</context-root>

    <container-descriptor>
        <prefer-application-packages>
            <package-name>com.owlike.*</package-name>
        </prefer-application-packages>
    </container-descriptor>
</weblogic-web-app>

这是web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <servlet>
        <servlet-name>ApplicationConfig</servlet-name>
        <servlet-class>
            org.glassfish.jersey.servlet.ServletContainer
        </servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>br.com.sicredi.programassociais.rest.service.ApplicationConfig</param-value>
        </init-param>
    </servlet>
    <session-config>
        <session-timeout>
            60
        </session-timeout>
    </session-config>
</web-app>

这是stacktrace:

  

weblogic.utils.compiler.ToolFailureException:应用工具失败:检查   有关详细信息的嵌套异常&lt; 18/04/2018 14h02min06s BRT&gt;         在   weblogic.application.compiler.FlowDriver.handleStateChangeException(FlowDriver.java:55)     在   weblogic.application.compiler.FlowDriver.nextState(FlowDriver.java:38)     在weblogic.application.compiler.AppMerge.runBody(AppMerge.java:146)     在weblogic.utils.compiler.Tool.run(Tool.java:159)at   weblogic.utils.compiler.Tool.run(Tool.java:116)at   weblogic.application.compiler.AppMerge.merge(AppMerge.java:158)at at   weblogic.deploy.api.internal.utils.AppMerger.merge(AppMerger.java:94)     在   weblogic.deploy.api.internal.utils.AppMerger.getMergedApp(AppMerger.java:58)     在   weblogic.deploy.api.model.internal.WebLogicDeployableObjectFactoryImpl.createDeployableObject(WebLogicDeployableObjectFactoryImpl.java:186)     在   weblogic.deploy.api.model.internal.WebLogicDeployableObjectFactoryImpl.createLazyDeployableObject(WebLogicDeployableObjectFactoryImpl.java:160)     在   weblogic.deploy.api.tools.SessionHelper.inspect(SessionHelper.java:777)     在com.bea.console.actions.app.install.Flow $ 2.execute(Flow.java:530)     在   com.bea.console.utils.DeploymentUtils.runDeploymentAction(DeploymentUtils.java:5636)     在   com.bea.console.actions.app.install.Flow.appSelected(Flow.java:528)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:498)at   org.apache.beehive.netui.pageflow.FlowController.invokeActionMethod(FlowController.java:870)     在   org.apache.beehive.netui.pageflow.FlowController.getActionMethodForward(FlowController.java:809)     在   org.apache.beehive.netui.pageflow.FlowController.internalExecute(FlowController.java:478)     在   org.apache.beehive.netui.pageflow.PageFlowController.internalExecute(PageFlowController.java:306)     在   org.apache.beehive.netui.pageflow.FlowController.execute(FlowController.java:336)     在   org.apache.beehive.netui.pageflow.internal.FlowControllerAction.execute(FlowControllerAction.java:52)     在   org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)     在   org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.access $ 201(PageFlowRequestProcessor.java:97)     在   org.apache.beehive.netui.pageflow.PageFlowRequestProcessor $ ActionRunner.execute(PageFlowRequestProcessor.java:2044)     在   org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors $ WrapActionInterceptorChain.continueChain(ActionInterceptors.java:64)     在   org.apache.beehive.netui.pageflow.interceptor.action.ActionInterceptor.wrapAction(ActionInterceptor.java:184)     在   org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors $ WrapActionInterceptorChain.invoke(ActionInterceptors.java:50)     在   org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors $ WrapActionInterceptorChain.continueChain(ActionInterceptors.java:58)     在   org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors.wrapAction(ActionInterceptors.java:87)     在   org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processActionPerform(PageFlowRequestProcessor.java:2116)     在   com.bea.console.internal.ConsolePageFlowRequestProcessor.processActionPerform(ConsolePageFlowRequestProcessor.java:265)     在   org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)     在   org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processInternal(PageFlowRequestProcessor.java:556)     在   org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.process(PageFlowRequestProcessor.java:853)     在   org.apache.beehive.netui.pageflow.AutoRegisterActionServlet.process(AutoRegisterActionServlet.java:631)     在   org.apache.beehive.netui.pageflow.PageFlowActionServlet.process(PageFlowActionServlet.java:158)     在   com.bea.console.internal.ConsoleActionServlet.process(ConsoleActionServlet.java:262)     在   org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)     在   com.bea.console.internal.ConsoleActionServlet.doGet(ConsoleActionServlet.java:134)     在   org.apache.beehive.netui.pageflow.PageFlowUtils.strutsLookup(PageFlowUtils.java:1199)     在   org.apache.beehive.netui.pageflow.PageFlowUtils.strutsLookup(PageFlowUtils.java:1129)     在   com.bea.portlet.adapter.scopedcontent.framework.internal.PageFlowUtilsBeehiveDelegate.strutsLookupInternal(PageFlowUtilsBeehiveDelegate.java:43)     在   com.bea.portlet.adapter.scopedcontent.framework.PageFlowUtils.strutsLookup(PageFlowUtils.java:108)     在   com.bea.portlet.adapter.scopedcontent.ScopedContentCommonSupport.executeAction(ScopedContentCommonSupport.java:707)     在   com.bea.portlet.adapter.scopedcontent.ScopedContentCommonSupport.processActionInternal(ScopedContentCommonSupport.java:141)     在   com.bea.portlet.adapter.scopedcontent.PageFlowStubImpl.processAction(PageFlowStubImpl.java:108)     在   com.bea.portlet.adapter.NetuiActionHandler.raiseScopedAction(NetuiActionHandler.java:111)     在   com.bea.netuix.servlets.controls.content.NetuiContent.raiseScopedAction(NetuiContent.java:181)     在   com.bea.netuix.servlets.controls.content.NetuiContent.raiseScopedAction(NetuiContent.java:167)     在   com.bea.netuix.servlets.controls.content.NetuiContent.handlePostbackData(NetuiContent.java:225)     在   com.bea.netuix.nf.ControlLifecycle $ 2.visit(ControlLifecycle.java:180)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:324)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)     在   com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:130)     在com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:399)     在com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:361)     在com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:352)     在com.bea.netuix.nf.Lifecycle.runInbound(Lifecycle.java:184)at   com.bea.netuix.nf.Lifecycle.run(Lifecycle.java:159)at   com.bea.netuix.servlets.manager.UIServlet.runLifecycle(UIServlet.java:465)     在   com.bea.netuix.servlets.manager.UIServlet.doPost(UIServlet.java:291)     在   com.bea.netuix.servlets.manager.UIServlet.service(UIServlet.java:219)     在   com.bea.netuix.servlets.manager.SingleFileServlet.service(SingleFileServlet.java:275)     在javax.servlet.http.HttpServlet.service(HttpServlet.java:790)at   com.bea.console.utils.MBeanUtilsInitSingleFileServlet.service(MBeanUtilsInitSingleFileServlet.java:64)     在   weblogic.servlet.AsyncInitServlet.service(AsyncInitServlet.java:125)     在   weblogic.servlet.internal.StubSecurityHelper $ ServletServiceAction.run(StubSecurityHelper.java:286)     在   weblogic.servlet.internal.StubSecurityHelper $ ServletServiceAction.run(StubSecurityHelper.java:260)     在   weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)     在   weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350)     在weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)     在   weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)     在com.bea.console.internal.ParamFilter.doFilter(ParamFilter.java:38)     在   weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)     在   weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:32)     在   weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)     在   weblogic.servlet.internal.WebAppServletContext $ ServletInvocationAction.wrapRun(WebAppServletContext.java:3654)     在   weblogic.servlet.internal.WebAppServletContext $ ServletInvocationAction.run(WebAppServletContext.java:3620)     在   weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)     在   weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:196)     在   weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)     在   weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)     在   weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2423)     在   weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2280)     在   weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2258)     在   weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1626)     在   weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1586)     在   weblogic.servlet.provider.ContainerSupportProviderImpl $ WlsRequestExecutor.run(ContainerSupportProviderImpl.java:270)     在   weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348)     在   weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333)     在   weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54)     在   weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)     在   weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:617)     在weblogic.work.ExecuteThread.execute(ExecuteThread.java:397)at   weblogic.work.ExecuteThread.run(ExecuteThread.java:346)引起:   java.lang.NullPointerException at   weblogic.jaxrs.server.extension.JaxRsContainerInitializer.createApplicationBaseUriForServletMappings(JaxRsContainerInitializer.java:405)     在   weblogic.jaxrs.server.extension.JaxRsContainerInitializer.createRestWebserviceDescriptionBeanForServlet(JaxRsContainerInitializer.java:400)     在   weblogic.jaxrs.server.extension.JaxRsContainerInitializer.addServletWithExistingRegistration(JaxRsContainerInitializer.java:223)     在   weblogic.jaxrs.server.extension.JaxRsContainerInitializer.initialize(JaxRsContainerInitializer.java:102)     在   weblogic.jaxrs.server.extension.JaxRsToolsModuleExtension.merge(JaxRsToolsModuleExtension.java:58)     在   weblogic.application.compiler.flow.SingleModuleMergeFlow.proecessModule(SingleModuleMergeFlow.java:33)     在   weblogic.application.compiler.flow.SingleModuleFlow.compile(SingleModuleFlow.java:64)     在   weblogic.application.compiler.FlowDriver $ FlowStateChange.next(FlowDriver.java:70)     在   weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)     在   weblogic.application.compiler.FlowDriver.nextState(FlowDriver.java:37)     在weblogic.application.compiler.BaseMerger.merge(BaseMerger.java:20)     在   weblogic.application.compiler.flow.AppMergerFlow.mergeInput(AppMergerFlow.java:75)     在   weblogic.application.compiler.flow.AppMergerFlow.compile(AppMergerFlow.java:40)     在   weblogic.application.compiler.FlowDriver $ FlowStateChange.next(FlowDriver.java:70)     在   weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)     在   weblogic.application.compiler.FlowDriver.nextState(FlowDriver.java:37)     ... 116更多

1 个答案:

答案 0 :(得分:0)

问题与堆栈跟踪中可见的 createApplicationBaseUriForServletMappings 方法有关。空指针是由于缺少映射定义。

ApplicationConfig servlet的 web.xml 文件中未定义映射。你添加一个映射,这应该可以正常工作。

<servlet-mapping>
  <servlet-name>ApplicationConfig</servlet-name>
  <url-pattern>/yourPathHere</url-pattern>
</servlet-mapping>