liyiorg / weixin-popular

微信SDK JAVA (公众平台、开放平台、 商户平台、 服务商平台)
Apache License 2.0
2.5k stars 1.06k forks source link

转换成xml的时候异常: javax.xml.bind.PropertyException: name: com.sun.xml.bind.marshaller.CharacterEscapeHandler value: weixin.popular.util.XMLConverUtil$1@4d37b0ae #179

Closed sqzr closed 5 years ago

sqzr commented 5 years ago

环境信息

异常信息

在调用统一下单的时候, 出现异常

javax.xml.bind.PropertyException: name: com.sun.xml.bind.marshaller.CharacterEscapeHandler value: weixin.popular.util.XMLConverUtil$1@d8289a8
    at javax.xml.bind.helpers.AbstractMarshallerImpl.setProperty(AbstractMarshallerImpl.java:358)
    at com.sun.xml.bind.v2.runtime.MarshallerImpl.setProperty(MarshallerImpl.java:516)
    at weixin.popular.util.XMLConverUtil.convertToXML(XMLConverUtil.java:136)
    at weixin.popular.api.PayMchAPI.sandboxnewPayGetsignkey(PayMchAPI.java:124)
java.lang.IllegalArgumentException: Source string may not be null
    at org.apache.http.util.Args.notNull(Args.java:54)
    at org.apache.http.entity.StringEntity.<init>(StringEntity.java:65)
    at org.apache.http.entity.StringEntity.<init>(StringEntity.java:132)
    at weixin.popular.api.PayMchAPI.sandboxnewPayGetsignkey(PayMchAPI.java:128)
sqzr commented 5 years ago

已解决,问题是与aliyun-java-sdk-core:4.0.6 中 jaxb-impl 冲突了,排除掉就行了。

我们项目中引用 aliyun-java-sdk-core 是需要使用阿里的短信服务,排查掉该依赖以后,短信服务依然正常,但是不确定其他功能是否会有影响。

<dependency> 
  <groupId>com.aliyun</groupId>  
  <artifactId>aliyun-java-sdk-core</artifactId>  
  <version>${aliyun-core.version}</version>  
  <exclusions> 
    <exclusion> 
      <groupId>com.sun.xml.bind</groupId>  
      <artifactId>jaxb-impl</artifactId> 
    </exclusion> 
  </exclusions> 
</dependency>