java - Cisco AXL - 执行 SQL 查询,解析响应

标签 java spring-boot cisco-axl

AXL 12.5 , Apache CXF 3.3.6 , OpenJDK 14 , Spring Boot 2.3.0 ,执行SQL查询

String sqlStmt = "SELECT name FROM typeuserlocale";

ExecuteSQLQueryReq executeSQLQueryReq = new ExecuteSQLQueryReq();
executeSQLQueryReq.setSql(sqlStmt);

ExecuteSQLQueryRes executeSQLQueryRes = axlPort.executeSQLQuery(executeSQLQueryReq);

List<Object> rows = executeSQLQueryRes.getReturn().getRow();

给出的响应为 List<Object> ,如何解析结果?将对象转换到什么?

调试显示是ElementNSImpl 。尝试将其转换到 ElementNSImpl导致IDE添加依赖:

<dependency>
    <groupId>xerces</groupId>
    <artifactId>xercesImpl</artifactId>
    <version>2.9.1</version>
</dependency>

但是转换它会导致异常:

java.lang.ClassCastException: 
class com.sun.org.apache.xerces.internal.dom.ElementNSImpl cannot be cast to class org.apache.xerces.dom.ElementNSImpl (com.sun.org.apache.xerces.internal.dom.ElementNSImpl is in module java.xml of loader 'bootstrap'; 
org.apache.xerces.dom.ElementNSImpl is in unnamed module of loader 'app')

最佳答案

当您的应用程序使用 OpenJDK 运行时,AXL 服务 stub 是否可能是使用 Oracle JDK 版本的 wsimport 生成的?在这种情况下,您可以尝试使用 OpenJDK wsdl2java 重新生成(不确定客户端代码是否会产生任何变化。)

这里有一个可用的 Cisco DevNet 示例,演示了解析:https://github.com/CiscoDevNet/axl-java-samples ,但是它基于 Oracle JDK 1.8

关于java - Cisco AXL - 执行 SQL 查询,解析响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62296834/

相关文章:

java - @Before 和 @After 排除

java - hibernate搜索中的OnFields方法接受什么数据类型

java - 无法在 Spring Boot 应用程序中启动 Tomcat

perl - 使用 Perl 从 Cisco Call Manager 获取 IP 地址列表

xml - Soap xml 响应使用 xsd 文件进行验证

java - 如何解决预填充数据库上涉及 'notNull' 和 'primaryKeyPosition' 的 Room 无效架构错误?

java - 为什么我在这个 java Thread 程序中得到这个输出?

java - 尝试停止重复 J 内部形式时出现空指针异常

spring - 当我通过gradle构建spring-boot应用程序时,我应该在哪里存储静态资源?

java - SOAP - 抛出 ServerSOAPFaultException 而不是适当的 @WebFault 异常