Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

微信支付 打成jar包后部署 访问不到 classpath下的 classpath:cert/apiclient_cert.p12 证书 #1549

Closed
cnsyear opened this issue May 7, 2020 · 7 comments

Comments

@cnsyear
Copy link

cnsyear commented May 7, 2020

简要描述

springboot集成微信支付 打成jar包后部署 访问不到 classpath下的 classpath:cert/apiclient_cert.p12 证书

image

模块版本情况

  • WxJava 模块名: weixin-java-pay
  • WxJava 版本号:3.7.0

详细描述

将排查WxPayConfig.java的148行 inputStream = WxPayConfig.class.getResourceAsStream(path); 获取方式,idea运行正常 打jar包部署访问不到

解决方案

 //解决打jar包后访问不到classpath下的文件
    inputStream =  Thread.currentThread().getContextClassLoader().getResourceAsStream(path);

望大佬看一下问题,早日发布版本修复~~~~

@binarywang
Copy link
Member

如果测试没问题,建议直接提交PR,谢谢楼主及时提出此问题

@binarywang
Copy link
Member

3.7.9.B版本已优化

@cnsyear
Copy link
Author

cnsyear commented May 17, 2020

@binarywang 大佬 不好意思 我上面没说清楚

//解决打jar包后访问不到classpath下的文件
inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(path);

这种方式是可以打成jar包后 获取,但是直接IDEA的话是获取不到的。。。

正好跟inputStream = WxPayConfig.class.getResourceAsStream(path); 反过来了 。。。。 我找了好久都没有找到两者都兼容的写法,,,,

@cnsyear
Copy link
Author

cnsyear commented May 17, 2020

@binarywang 大佬 我找到了一种可以通用的写法

但是需要依赖hutool 工具包

     <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.3.5</version>
        </dependency>

这个资源读取工具类可以兼容IDEA和jar、war包
cn.hutool.core.io.resource.ResourceUtil

 //解决打jar包后访问不到classpath下的文件
 inputStream =  ResourceUtil.getStream(path);

@cnsyear
Copy link
Author

cnsyear commented May 17, 2020

3.7.9.B版本已优化

抱歉我上面的写法这能在jar包内读取,idea是不可以的。。。

@binarywang
Copy link
Member

楼主下次最好自己提交PR吧

@binarywang
Copy link
Member

@binarywang 大佬 我找到了一种可以通用的写法

但是需要依赖hutool 工具包

     <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.3.5</version>
        </dependency>

这个资源读取工具类可以兼容IDEA和jar、war包
cn.hutool.core.io.resource.ResourceUtil

 //解决打jar包后访问不到classpath下的文件
 inputStream =  ResourceUtil.getStream(path);

刚试了下,并不能解决问题,你确定测试没问题?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants