具有 gradle 依赖项的 MBean 构造函数错误
MBeans constructor error with gradle dependencies
我有一个 java 项目,该项目使用我生成的外部自定义 jar,我已将我的 jar 导入 build.gradle 为:
repositories {
mavenCentral()
flatDir { dirs './src/dist/lib' } }
dependencies {
implementation name: 'PaymentServer-Lite'
compile group: 'org.jpos', name:'jpos', version:'1.9.2'
compile group: 'org.jpos.ee', name: 'jposee-server-simulator', version: '2.0.2-SNAPSHOT'
compile ('org.jpos:jpos:2.1.2') {
exclude(module: 'junit')
exclude(module: 'hamcrest-core')
}
testCompile 'junit:junit:4.8.2' }
我的 class 从我的 jar 中导入了另一个 class,名为 Loader,它看起来像这样:
import com.recharge.mongo.Loader.Loader;
public class PaymentQ2 extends org.jpos.q2.iso.QServer {
Loader loader;
public PaymentQ2(){
loader = Loader.getInstance();
}
}
我的问题是,当我 运行 我的应用程序 运行 gradle 我收到以下错误:
<exception name="Error thrown in the MBean's constructor">
javax.management.RuntimeErrorException: Error thrown in the MBean's constructor
at com.sun.jmx.mbeanserver.MBeanInstantiator.instantiate(MBeanInstantiator.java:330)
at com.sun.jmx.mbeanserver.MBeanInstantiator.instantiate(MBeanInstantiator.java:620)
at com.sun.jmx.mbeanserver.MBeanInstantiator.instantiate(MBeanInstantiator.java:527)
at com.sun.jmx.mbeanserver.JmxMBeanServer.instantiate(JmxMBeanServer.java:990)
at org.jpos.q2.QFactory.instantiate(QFactory.java:78)
at org.jpos.q2.Q2.deploy(Q2.java:578)
at org.jpos.q2.Q2.deploy(Q2.java:391)
at org.jpos.q2.Q2.run(Q2.java:259)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError: com/recharge/mongo/Loader/Loader
不知道是我依赖的问题还是我jar的问题
问题是您将依赖项定义为 implementation
,这意味着平台 运行 jar 已经包含它的实现。
在这种情况下,您正在 运行 将程序与 q2
连接起来,它本身的路径中没有那个 jar。如果你想 运行 带有 q2
的程序,你需要将依赖声明为 compile
dependencies {
compile name: 'PaymentServer-Lite'
....
}
来源:
我有一个 java 项目,该项目使用我生成的外部自定义 jar,我已将我的 jar 导入 build.gradle 为:
repositories {
mavenCentral()
flatDir { dirs './src/dist/lib' } }
dependencies {
implementation name: 'PaymentServer-Lite'
compile group: 'org.jpos', name:'jpos', version:'1.9.2'
compile group: 'org.jpos.ee', name: 'jposee-server-simulator', version: '2.0.2-SNAPSHOT'
compile ('org.jpos:jpos:2.1.2') {
exclude(module: 'junit')
exclude(module: 'hamcrest-core')
}
testCompile 'junit:junit:4.8.2' }
我的 class 从我的 jar 中导入了另一个 class,名为 Loader,它看起来像这样:
import com.recharge.mongo.Loader.Loader;
public class PaymentQ2 extends org.jpos.q2.iso.QServer {
Loader loader;
public PaymentQ2(){
loader = Loader.getInstance();
}
}
我的问题是,当我 运行 我的应用程序 运行 gradle 我收到以下错误:
<exception name="Error thrown in the MBean's constructor">
javax.management.RuntimeErrorException: Error thrown in the MBean's constructor
at com.sun.jmx.mbeanserver.MBeanInstantiator.instantiate(MBeanInstantiator.java:330)
at com.sun.jmx.mbeanserver.MBeanInstantiator.instantiate(MBeanInstantiator.java:620)
at com.sun.jmx.mbeanserver.MBeanInstantiator.instantiate(MBeanInstantiator.java:527)
at com.sun.jmx.mbeanserver.JmxMBeanServer.instantiate(JmxMBeanServer.java:990)
at org.jpos.q2.QFactory.instantiate(QFactory.java:78)
at org.jpos.q2.Q2.deploy(Q2.java:578)
at org.jpos.q2.Q2.deploy(Q2.java:391)
at org.jpos.q2.Q2.run(Q2.java:259)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError: com/recharge/mongo/Loader/Loader
不知道是我依赖的问题还是我jar的问题
问题是您将依赖项定义为 implementation
,这意味着平台 运行 jar 已经包含它的实现。
在这种情况下,您正在 运行 将程序与 q2
连接起来,它本身的路径中没有那个 jar。如果你想 运行 带有 q2
compile
dependencies {
compile name: 'PaymentServer-Lite'
....
}
来源: