问题标签 [linkageerror]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
62 浏览

eclipse-plugin - 使用 OSGI 的 Eclipse CDT 插件中的 LinkageError

我正在 Windows 上编写 eclipse CDT 插件。我想将代码写入项目中的现有文件,但我需要自动格式化代码。我用谷歌搜索和搜索,找到了这个解决方案:

为了让这段代码工作(至少部分),我添加了以下导入:

以及类路径和 plugin.xml 运行时定义中的以下库:

我确信有这么多的依赖关系,代码会工作 - 但现在我正在调试,并在运行时得到以下异常:

我看到这个话题已经讨论过了,但我自己 - 没有找到解决方案。

任何人都可以帮助我吗?

0 投票
0 回答
3607 浏览

java - java.lang.LinkageError:加载程序约束冲突:加载程序先前为名称为“javax/xml/namespace/QName”的不同类型启动加载

我正在开发一个Eclipse 插件,并尝试用等效的OSGi bundle替换普通的 jar。我使用Apache Felix maven-bundle-plugin 构建 jar 文件并将其转换为 OSGi 包。在 pom.xml 中,我定义了我的插件所需的包,还定义了库包含的所有包(依赖项),包括包。当我在插件的类路径中使用库时,我可以正常运行插件。现在,我从库中创建的 OSGi 包中导入包,我收到此错误:<Export-Package>usesjavax.xml.namespace<Embed-Dependency>javax.xml.namespace

似乎QName实例化了该类的两个不同版本(一个来自插件,一个来自库?)但我在库和插件中都需要这个类。我尝试将包中的 javax.xml.namespace 包导入插件,但这没有帮助。此外,我尝试将与库相关的代码移动到插件的另一个类中,我没有导入QName该类,但这并没有改变什么。这似乎是一个棘手的问题。我是否需要更改MANIFEST.MF或捆绑包的嵌入式包中的某些内容,还是需要更改插件的导入包中的某些内容?任何帮助表示赞赏。

0 投票
1 回答
501 浏览

web-services - “方法抛出 'java.lang.LinkageError' 异常”,同时调用存根方法

我正在尝试使用自动生成的存根调用 Web 服务的方法。在它分配的下一行,

作为 SOAP 信封。

这是什么原因?

0 投票
1 回答
363 浏览

maven - 将 jsf 1.2 迁移到 jsf 2.2.12 后出现的问题

我正在将项目从 jsf 1.2 迁移到 jsf 2.2.12。构建成功后,我部署到 jboss 7 服务器并收到如下错误消息:

你对这个有什么想法吗?

这是我的系统详细信息: 服务器:jboss7 当前库:jsf 1.2,richfaces 3.3.3 迁移库:jsf 2.2.17 构建:maven

此致,

0 投票
0 回答
581 浏览

java - 执行带有预期异常和 Powermock 的 TestNG 时出现链接错误

我正在开发一个 Maven 项目,并且正在尝试使用以下结构执行 TestNG 单元测试:

但是当我运行测试时,我发现了以下异常:

据我了解,powermock 使用 MockClassLoader 为测试环境加载对象,Sun 使用他的 AppClassLoader 加载相同的对象。由于类加载器不同,因此在运行时对象也是(除了它们具有相同的名称),这意味着 LinkageError。

无论如何,我尝试了几种方法来避免这种情况,例如通过删除 expectedExceptions 标记并添加 try 和 catch 子句,但没有成功。

如何为该异常设置一个唯一的类加载器?这是解决它的正确方法吗?还是我应该尝试别的东西?我的 Maven 配置可能有问题吗?欢迎任何想法或意见:)

0 投票
3 回答
5072 浏览

java - 部署到 weblogic 时出现 Java LinkageError

我正在开发一个大型应用程序,我刚刚在轴的帮助下添加了一个由 eclipse 生成的新 Web 服务。该应用程序在我的开发环境(应用程序由码头托管)中运行良好,但现在我在 weblogic 中运行我的应用程序时遇到了麻烦(需要部署应用程序)。我得到的错误是:

这个问题已经延迟了几天的开发。据我在网上了解:

  • 我的 Axis 依赖项包含类:org.apache.axis.client.Service,它遵循 javax.xml.rpc.Service 接口。
  • 我的 Weblogic 提供了接口:javax.xml.rpc.Service
  • 由于它们位于不同的路径(应用程序和 weblogic)中,因此它们由不同的类加载器加载

第一个问题:我的观察是否正确?

第二个问题:我该怎么做/尝试解决这个问题?

额外的信息:

  • 使用 Maven。
  • 为了确保 Weblogic 加载的所有依赖项在我们的开发环境中也可用,我们添加了 wlsfullclient.jar 作为依赖项(仅在我们的开发环境中)。
  • 由于我们的 weblogic 服务器被很多项目使用,我不能只将 Axis jar 添加到 weblogic 路径中。
  • 我已经在 Stack 上发现了一个类似的问题:How to deal with LinkageErrors in Java? .
    • 尽管我对 Alex Miller 的回复感兴趣,但他们的解决方案对我来说并不清楚,特别是:“这可能意味着将其从类路径中删除并作为插件加载”。
      • 这适用于应用程序端还是网络逻辑端?
  • 如果需要更多信息,我很乐意提供。

编辑: 我的项目中有一个 weblogic.xml,内容如下:

我的WAR文件结构如下:

0 投票
2 回答
13678 浏览

java - 使用同一类的不同版本进行类加载:java.lang.LinkageError:尝试为名称重复类定义

我有一个工作代码,可以动态加载具有不同类名的不同类实现。类文件被加载到内存数据库( Apache Derby Db ) 中,并且类加载器从BLOB列中检索.class文件。

我想要做的是,将.class文件作为带有版本列和标志的二进制 BLOB插入IS_ENABLED,然后类加载器将在运行时加载不同版本的类。将有相同数量的已编译类版本的 db 条目,并且只有一个IS_ENABLED标志设置为TRUE的类。

因为我尝试使用自定义类加载器加载相同的类名,所以我得到以下异常;

同一个接口( Greeter.java )有两个不同的.class文件(Greeter.class.v1Greeter.class.v2)(在代码开头插入)

在测试代​​码的开头,从 lib/classes/ 文件夹中检索类文件,并将其作为 blob 二进制数据插入到内存数据库中,然后,.class 文件被数据库顺序检索并加载。加载具有相同名称的类时,发生异常。

我怎么解决这个问题?有没有办法卸载一个类,或者无论如何重新加载一个同名的类?

项目树

在此处输入图像描述

DerbyServerClassLoader.java - 类加载器

Greet.java - 问候接口

DbSingleton.java - 连接 DerbyDb 的实用程序类

ClientClassLoaderDBVersionDemo.java - 测试代码

输出

0 投票
2 回答
54 浏览

c++ - 在 Visual Studio 中生成 DLL

我正在尝试生成 dll 文件,在另一个程序中使用它的 .lib 文件,但不幸的是,没有生成 .lib 文件!我应该怎么办?

0 投票
1 回答
15987 浏览

java - java.lang.LinkageError:尝试重复的类定义

为什么会发生错误,我该如何解决?

这是导致错误的行

然后还有这个。它来自另一个模块,两者都应该同时异步执行(或者一个接一个,因为我认为现在我只有一个线程)。这个工作没有错误。

Filters.eq 是一个静态方法。

两者都使用相同的

我觉得我缺乏重要的知识,但我不知道在哪里寻找。

0 投票
1 回答
3990 浏览

jakarta-ee - java.lang.LinkageError:加载程序约束违规;解析接口方法时(在服务类中)

我的项目结构就像有三个包,即 Rest(其中放置了 Rest API 及其实现类)、Service API(其中定义了服务接口)和 Service Impl(其中放置了 Service API 的实现)。我的代码PersonalInfoServiceImpl只是将PersonalInfoRequestBean值设置为PersonalInfoResponseBean(+几个属性)对象并返回PersonalInfoResponseBean. 它工作正常。但是在与更多的拦截器集成之后,现在我突然开始在这段代码中收到以下错误:

有人可以帮我解决这个问题吗?我们正在使用 Apache karaf 来部署我们的服务。因此,如果它与 karaf/delpoyment/maven 依赖项有关,那么调试此问题的方法是什么。