草庐IT

camel-jdbc

全部标签

java - JDBC/OSGi 以及如何动态加载驱动程序而无需在包中明确声明依赖关系?

这是一个大问题。我有一个结构良好但单一的代码库,它有一个原始的模块化架构(所有模块实现接口(interface)但共享相同的类路径)。当我在应用程序服务器上进行部署时,我意识到这种方法的愚蠢以及它所代表的问题,这些应用程序服务器可能具有我的库的不同冲突版本。我现在依赖大约30个jar,并且正在中途将它们捆绑在一起。现在我的一些模块很容易声明版本化的依赖关系,比如我的网络组件。它们在JRE和其他BNDded库中静态引用类,但我的JDBC相关组件通过Class.forName(...)实例化,并且可以使用任意数量的驱动程序之一。我正在按服务区域将所有内容分解为OSGi包。我的核心类/接口(

java - 使用 spring jdbc oracle 设置 session 时区

我有一个spring/jdbc/oracle10g应用程序。Oracle服务器数据库时区设置为GMT+2JVM时区为GMT+2(尽管在我的情况下这无关紧要)。我有一个执行一些日期操作的存储过程。问题是session时区与数据库时区不同(格林威治标准时间),即使我没有在我的代码/配置中显式设置session时区。据我所知,session时区默认等于数据库时区。知道为什么session时区与数据库时区不同,或者我如何在spring配置(org.apache.commons.dbcp.BasicDataSource)中配置它?谢谢。 最佳答案

java - jTDS JDBC 驱动程序 : getNString() throws error

我正在使用jtDSJDBC驱动程序,当我调用ResultSet.getNString(index);时,出现以下异常:run:Exceptioninthread"main"java.lang.AbstractMethodError:net.sourceforge.jtds.jdbc.JtdsResultSet.getNString(I)Ljava/lang/String;atjavasql.ProductsController.PrePopulate(ProductsController.java:51)atjavasql.ProductsController.(ProductsCon

java - Apache Camel JMS - 异常没有通过请求/回复返回给调用者

我使用ApacheCamel和JMS创建了一个简单的请求/回复设置。一切正常-调用被分派(dispatch)到服务器端服务,结果返回到客户端。只有当服务器端出现异常时,这个异常才不会返回给调用者。异常出现在服务器上,客户端收到超时。我想在客户端接收异常。据我了解可用的文档,我想要的应该是默认行为。我还尝试使用onException子句或为回传设置另一条路线,但所有这些都无济于事。所以我的问题是我在设置中缺少什么来将异常返回给调用者?详细信息如下(代码已简化):用于通信的JMS队列部署在独立的JBoss中(7.1.1.FINAL)JNDI用于查找工厂以创建到队列的连接客户端当前是运行在J

java - 如何保留动态创建的 Camel 路线?

我正在使用监听“控制路线”的自定义处理器动态创建路线。它根据发送到控制路由的消息内容创建路由。它用于由另一个系统动态创建FTP/文件端点。我在ServiceMix和Hawtio中使用Camel作为蓝图包来控制路由的状态(例如,暂停它们)。它工作正常,但(逻辑上)如果camel上下文重新启动,则无法识别这些路由,因为没有持久路由配置。是否有一些关于如何持久化路由的最佳实践?我正在考虑通过读取文件端点的目录结构或使用数据库来保存路由及其状态来重新创建路由。 最佳答案 我们有相同的场景并选择使用数据库表来存储关于每条路线的元数据并在启动时

java - 替换 Camel v2.16.0 中弃用的 beanRef()

我们正在从Camelv2.13升级到v2.16,发现beanRef()已被标记为已弃用。ApacheCamel推荐的替代品/替代品是什么。我无法在Camelv2.16.0文档站点上找到任何有用的信息。甚至还没有更新的示例。beanRef()是Camel的JavaDSLBean语言中的语法。 最佳答案 我假设您正在谈论ProcessorDefinition类。javadoc注释说使用bean(...)方法替代beanRef(...)方法。来源引用:https://github.com/apache/camel/blob/6dae060

java - 通过 JDBC 将 DDL 与 SELECT 混合时为 "ERROR: cached plan must not change result type"

我在通过JDBC使用PostgreSQL时遇到了一个有趣的问题(无法在JDBC之外重现),我得到了一个“ERROR:cachedplanmustnotchangeresulttype”重现此问题的最简单方法是使用以下代码:Connectionc=getConnection();c.setAutoCommit(true);Liststatements=Arrays.asList("createtablet(aint)","select*fromt","altertabletaddbint","select*fromt","altertabletaddcint","select*fromt

java - 组织.hibernate.MappingException : No Dialect mapping for JDBC type: 1111

InitialSessionFactorycreationfailed.org.hibernate.MappingException:NoDialectmappingforJDBCtype:111127Dec,20126:38:34PMorg.apache.catalina.core.StandardWrapperValveinvokeSEVERE:Servlet.service()forservletcommissionthrewexceptionorg.hibernate.MappingException:NoDialectmappingforJDBCtype:1111atorg.

java - 无法使用 Maven 导入 o​​rg.springframework.jdbc.core

我不知道为什么在我的项目中找不到以下导入:代码:importorg.springframework.jdbc.core.SqlInOutParameter;importorg.springframework.jdbc.core.SqlParameter;importorg.springframework.jdbc.object.StoredProcedure;我的pom.xml文件中有以下内容代码:org.springframeworkspring-context3.2.1.RELEASE但我发现,如果我添加以下内容,它会起作用,但我不明白为什么我需要这样做:org.springfra

java - 通过JDBC向PostgreSQL表中插入 "daterange"字段值

我在PostgreSQL(9.3)中有一张表daterange字段类型。我可以像使用JDBC的字符串一样选择这个字段,但我不能将它插入到表中。我尝试过的:PreparedStatementstm=conn.prepareStatement("insertintomytable(my_daterange_field)values(?)");stm.setString(1,"[2014-01-02,2014-01-04]");inti=stm.executeUpdate();我得到了:Exceptioninthread"main"org.postgresql.util.PSQLExcept