Java NoClassDefFoundError单音调保持器

Java NoClassDefFoundError单音调保持器,java,singleton,noclassdeffounderror,vaadin7,Java,Singleton,Noclassdeffounderror,Vaadin7,大家好!我最近部署了一个web项目,在尝试获取singleton类的实例时遇到了NoClassDefFoundError com.vaadin.server.ServerRpcManager$RpcInvocationException:无法调用方法click in com.vaadin.shared.ui.button.ButtonServerRpc位于 com.vaadin.server.ServerRpcManager.applyinovate(ServerRpcManager.java:

大家好!我最近部署了一个web项目,在尝试获取singleton类的实例时遇到了NoClassDefFoundError

com.vaadin.server.ServerRpcManager$RpcInvocationException:无法调用方法click in com.vaadin.shared.ui.button.ButtonServerRpc位于 com.vaadin.server.ServerRpcManager.applyinovate(ServerRpcManager.java:170) 在 com.vaadin.server.ServerRpcManager.applyinovate(ServerRpcManager.java:118) 在 com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:287) 在 com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:180) 在 com.vaadin.server.communication.PushHandler$3.run(PushHandler.java:174) 在 com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:253) 在 com.vaadin.server.communication.PushHandler.access$200(PushHandler.java:56) 在 com.vaadin.server.communication.PushHandler$1.onRequest(PushHandler.java:76) 在 org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:174) 在 AsynchronousProcessor.suspended(AsynchronousProcessor.java:95) 在 org.atmosphere.container.GlassFishServ30WebSocketSupport.service(GlassFishServ30WebSocketSupport.java:60) 在 org.atmosphere.cpr.AtmosphereFramework.docomesupport(AtmosphereFramework.java:1802) 在 org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:432) 在 org.atmosphere.websocket.DefaultWebSocketProcessor$2.run(DefaultWebSocketProcessor.java:285) 在 org.atmosphere.util.VoidExecutorService.execute(VoidExecutorService.java:101) 在 org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:280) 在 org.atmosphere.websocket.DefaultWebSocketProcessor.invokeWebSocketProtocol(DefaultWebSocketProcessor.java:303) 在 GlassFishServ30WebSocketSupport$Grizzly2WebSocketApplication.onMessage(GlassFishServ30WebSocketSupport.java:157) 在 org.glassfish.grizzly.websockets.SimpleWebSocket.onMessage(SimpleWebSocket.java:163) 在 org.glassfish.grizzly.websockets.frametypes.TextFrameType.respond(TextFrameType.java:68) 在 org.glassfish.grizzly.websockets.DataFrame.respond(DataFrame.java:119) 在 glassfish.grizzly.websockets.BaseWebSocketFilter.handleRead(BaseWebSocketFilter.java:219) 在 org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) 在 org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284) 在 org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201) 在 org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133) 在 org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) 在 org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) 在 org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561) 在 glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) 在 org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) 在 org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56) 在 grassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) 在 org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565) 在 org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545) 在java.lang.Thread.run(Thread.java:745)处,由以下原因引起: java.lang.reflect.InvocationTargetException位于 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)位于 invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 位于java.lang.reflect.Method.invoke(Method.java:497) com.vaadin.server.ServerRpcManager.applyinovate(ServerRpcManager.java:168) ... 又有35人因以下原因而受伤: ListenerMethod$MethodException:方法调用 按钮插入 no.solarsoft.venus2.admissionweb2.presentation.components.wizard.contentparts.PaymentPanel$2 失败。在 com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:528) 在com.vaadin.event.EventRouter.firevent(EventRouter.java:198)上 com.vaadin.event.EventRouter.firevent(EventRouter.java:161)位于 com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:979) 位于com.vaadin.ui.Button.fireClick(Button.java:393) Button$1.click(Button.java:57)。。。40多宗由以下原因引起: java.lang.ExceptionInInitializerRor位于 no.solarsoft.venus2.payex.wsclient.PxOrderManager.getInstance(PxOrderManager.java:54) 在 no.solarsoft.venus2.admissionweb2.payment.payex.AbstractPayExHelper.initializeOrder(AbstractPayExHelper.java:60) 在 no.solarsoft.venus2.admissionweb2.payment.payex.PayExCreditCardHelper.initializeOrder(PayExCreditCardHelper.java:60) 在 no.solarsoft.venus2.admissionweb2.presentation.view.ApplicationWizardView$PaymentPanelModelPropertyChangeListener.propertyChange(ApplicationWizardView.java:1599) 在 fire(PropertyChangeSupport.java:335) 在 firePropertyChange(PropertyChangeSupport.java:327) 在 no.solarsoft.venus2.admissionweb2.presentation.components.wizard.content.model.PaymentPanelModel.createCreditCardPaymentEvent(PaymentPanelModel.java:210) 在 no.solarsoft.venus2.admissionweb2.presentation.components.wizard.contentparts.PaymentPanel$2.buttonClick(PaymentPanel.java:272) 在sun.refl
[2015-09-05T09:30:09.061+0200] [glassfish 4.1] [SEVERE] [] [] [tid:
_ThreadID=35 _ThreadName=Thread-9] [timeMillis: 1441438209061] [levelValue: 1000] [[  
package no.solarsoft.venus2.payex.wsclient;

import java.net.MalformedURLException;
import java.net.URL;

import javax.xml.namespace.QName;

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;

import no.solarsoft.venus2.admissionweb2.AdmissionWebUI;
import no.solarsoft.venus2.admissionweb2.AdmissionWebUI.RuntimeMode;

import com.payex.external.pxorder.PxOrder;
import com.payex.external.pxorder.PxOrderSoap;

public class PxOrderManager {

    private static final QName SERVICE_NAME = new QName("http://external.payex.com/PxOrder/", "PxOrder");
    private static final String TEST_WSDL_LOCATION_STRING = "https://test-external.payex.com/pxorder/pxorder.asmx?WSDL";
    private static final String WSDL_LOCATION_STRING = "https://external.payex.com/pxorder/pxorder.asmx?WSDL";
    private static final URL WSDL_LOCATION;

    private static final Logger log = LogManager.getLogger(PxOrderManager.class);

    // This initializes WSDL location. !!! USE TEST_WSDL_LOCATION_STRING for
    // testing against test web services.
    static {
        URL url = null;
        String urlString = null;
        try {
            urlString = AdmissionWebUI.RUNTIME_MODE.equals(RuntimeMode.PRODUCTION) ? WSDL_LOCATION_STRING
                    : TEST_WSDL_LOCATION_STRING;
            url = new URL(urlString);
        } catch (MalformedURLException e) {
            java.util.logging.Logger.getLogger(PxOrder.class.getName()).log(java.util.logging.Level.INFO,
                    "Can not initialize the default wsdl from {0}", urlString);
        }
        WSDL_LOCATION = url;
    }

    private PxOrder service;
    private PxOrderSoap port;

    private PxOrderManager() {
        init(WSDL_LOCATION);
    }

    private static class PxOrderManagerSingletonHolder {
        public static final PxOrderManager INSTANCE = new PxOrderManager();
    }

    public static PxOrderManager getInstance() {
        return PxOrderManagerSingletonHolder.INSTANCE;
    }

    private void init(URL wsdlUrl) {
        log.info("Initializing web service with wsdl location at: " + wsdlUrl.toString());
        service = new PxOrder(wsdlUrl, SERVICE_NAME);
        port = service.getPxOrderSoap();
    }

    public PxOrderSoap getPort() {
        return this.port;
    }
}