【问题标题】:Endpoint.publish doesn't work after proguard obfuscationProguard 混淆后 Endpoint.publish 不起作用
【发布时间】:2018-04-16 15:31:28
【问题描述】:

我想混淆我的代码。 我的应用程序启动了一个 Web 服务。

import javax.xml.ws.Endpoint;
@Override
protected void run() throws Exception {
    logger.info("Starting Server");
    basicHttpBinding_ITestServiceImpl = new BasicHttpBinding_ITestServiceImpl();
    logger.debug("BasicHttpBinding_ITestServiceImpl is created");
    ep = Endpoint.create(basicHttpBinding_ITestServiceImpl);
    logger.debug("Endpoint created");
    ep.publish(this.address);

    logger.info("Server ready...");
}

代码在混淆之前可以正常工作。 但是当我尝试混淆我的代码时,执行被阻止在 ep.publish(this.address);

有关信息,我使用 proguard 来混淆我的代码。

如果有人有任何想法? 在编译和混淆过程中我没有问题。 我的班级没有被混淆(但其他班级被混淆了)。

【问题讨论】:

  • 你能分享你的配置吗?另外,您在问题中提到的混淆类是否与您的问题类有关?
  • 不,我的课程没有被混淆,但其他课程是。 (没有混淆的类和这个没有混淆的类之间的链接)

标签: java java-8 proguard


【解决方案1】:

你还没有保留javax.xml.ws.Endpoint。您需要保留您正在使用的所有依赖项,以及您没有自己编写的所有代码。否则,混淆它们会导致问题。请记住保留您正在使用的所有 jar,并将以下行添加到您的配置中:

-keep class javax.xml.**;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-11
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多