小编Tsv*_*kov的帖子

javax.xml.crypto.URIReferenceException:无法解析 ID 为 1234 的元素。最后提供了解决方案

我有以下工作流程:

\n\n
    \n
  1. 获取字符串形式的 XML
  2. \n
  3. 将字符串转换为文档,对文档进行签名(某些元素)并将其以字符串形式返回
  4. \n
  5. 获取字符串形式的签名 XML,将其转换为文档并验证签名
  6. \n
\n\n

下面是签名创建方法:

\n\n
public static String createXMLDSign(String xmlString) throws Exception{\n    // Create a DOM XMLSignatureFactory that will be used to\n    // generate the enveloped signature.\n    String providerName = System.getProperty("jsr105Provider", "org.jcp.xml.dsig.internal.dom.XMLDSigRI");\n    XMLSignatureFactory fac = XMLSignatureFactory.getInstance("DOM", (Provider) Class.forName(providerName).newInstance());\n\n    // Load the KeyStore and get the signing key and certificate.\n    KeyStore ks = KeyStore.getInstance("JKS");\n    ks.load(new FileInputStream("src/main/resources/jks/client-keystore.jks"), keyStorePass .toCharArray());\n    KeyStore.PrivateKeyEntry keyEntry =\n        (KeyStore.PrivateKeyEntry) ks.getEntry\n            ("client-keypair", new KeyStore.PasswordProtection(keyPass .toCharArray()));\n    X509Certificate cert = (X509Certificate) keyEntry.getCertificate();\n\n …
Run Code Online (Sandbox Code Playgroud)

java xml cxf xml-signature

8
推荐指数
0
解决办法
4509
查看次数

Spring Data JPA - NUMBER 列类型的 null 参数问题

我想进行动态查询,其中如果发送特定参数,本机查询应根据它过滤结果。如果它为空,则不应反映结果。

我使用带有本机查询机制的 Spring Data JPA + Oracle DB

对于字符串参数,这种方法效果很好

:email is null or s.email = :email
Run Code Online (Sandbox Code Playgroud)

但对于整数参数,当它们具有值时,查询可以工作,但如果参数为空,查询将失败并出现错误

引起原因:java.sql.SQLSyntaxErrorException:ORA-00932:数据类型不一致:预期的 NUMBER 得到了 BINARY

我对 Integer 使用完全相同的方法而不是 String

我想知道问题是在我这边还是某种错误?

java orm spring spring-data-jpa

8
推荐指数
1
解决办法
4127
查看次数

标签 统计

java ×2

cxf ×1

orm ×1

spring ×1

spring-data-jpa ×1

xml ×1

xml-signature ×1