当前位置: 首页 > 知识库问答 >
问题:

NoClassDefoundError单例持有者

葛霄
2023-03-14

大家好!我最近部署了一个web项目,在尝试获取一个单例类的实例时,我得到了一个NoClassDefoundError。

[2015-09-05T09:30:09.061+0200] [glassfish 4.1] [SEVERE] [] [] [tid:
_ThreadID=35 _ThreadName=Thread-9] [timeMillis: 1441438209061] [levelValue: 1000] [[  

下面是我的PxOrderManager的代码:

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;
    }
}

我已经尝试检查我的war文件的内容,它看起来正常。类PXOrderManagerSingletonHolderPXOrderManager存在

我希望有人能帮助我。谢谢!

共有1个答案

马庆
2023-03-14

我认为您的问题出在不同的地方(不是NoClassDefoundErr)。stacktrace中包含以下信息:

原因:java.lang.IllegalStateException:MASM0001:找不到默认配置文件[jaxws-tubes-default.xml]

在SO中描述了该解决方案。

 类似资料:
  • 我刚刚安装了JDK8,以使用WebView,但我得到了一个错误。错误是这样的: 我不知道为什么Swing没有嵌入到JavaFX for JDK8,但是有人知道如何解决这个问题吗? “Java-版本输出” Java版本“1.8.0_11”Java(TM)SE运行时环境(Build1.8.0_11-B12)Java HotSpot(TM)64位服务器VM(Build25.11-B03,混合模式) 问题

  • NoClassDefoundError.:创建名为“Entity ManagerFactory”的bean时出错 也许您知道我应该将哪个依赖项包含到pom.xml中。Maven项目。以下是我的资料: UnsatisfiedDependencyException:创建类路径资源[org/SpringFramework/Boot/AutoConfigure/orm/jpa/HibernateJPAAu

  • 但当我执行这段代码时,我面临以下异常。 它似乎喜欢它的一个配置,伊索。我从站点下载了jar并将其添加到我的refrenced库中。我使用的IDE是Eclipse。HtmlUnit版本为htmlunit-2.13.jar

  • 当我从以下位置运行此玩具示例时,会出现此错误: http://howtodoinjava.com/2014/06/16/jackson-examples-convert-java-object-to-from-json/ java-jar build/libs/pojo-test-0.1.0.jar 线程“main”java.lang.noClassdeffounderror:org/codeha

  • 我正在尝试将我的程序导出为一个可运行的JAR,在Eclipse中一切都运行得很好。我已经检查了以下内容: 在下包含我库中的所有JAR 在下检查了它们 导出时,我选择了 打开生成的JAR时,可以看到所有其他第三方JAR都在根中 然而,当我运行可运行的JAR时,我会得到以下结果: 我让可运行的JAR工作的唯一其他方法是选择,但是我不想提取所有这些第三方JAR,有人能告诉我在Eclipse中还缺少什么吗

  • 我的Android项目有几个模块(一个应用程序和多个库),当我尝试从命令行运行所有单元测试(RobolectRic3.8)时 我得到以下错误(不是当我从Android Studio运行相同的任务时) 每个模块上的build.gradle文件包含以下配置 application模块定义了两个在同一维度中运行的味道 知道吗?