我的应用程序目前正在使用Spring的JdbcTemplate
和@Transaction
注释进行事务处理。
我有一个在单个事务上调用Web服务的方法,我设计它是为了让Web服务的异常将回滚事务中的所有数据库更改。
我的问题:如何刷新在调用web服务之前所做的数据库更改?
非常感谢
@Autowired
private MyDao dao;
@Transactional
@Override
public void myMethod() {
.....
dao.saveThis(myObjectToSaveIsNotAnIssue);
// I need to FLUSH here in order for my web service to "see" the saved object
callWebservice();
}
我的Spring配置:
<context:component-scan base-package="com.xxx.xxx" />
<context:annotation-config />
<!-- proxy-target-class is set to true to use transactional scope -->
<tx:annotation-driven proxy-target-class="true" transaction-manager="tomcatTransactionManager" />
<bean id="sybaseDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/xxx"/>
<property name="lookupOnStartup" value="true"/>
<property name="proxyInterface" value="javax.sql.DataSource"/>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="sybaseDataSource"/>
</bean>
<!-- Transaction Manager -->
<bean id="tomcatTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="sybaseDataSource" />
</bean>
我们可以从汇编程序中的事务中取出callWebservice()方法,然后首先从汇编程序调用myMethod,然后调用callWebservice()方法。而且,通过使用Call Webservice方法,我们可以处理成功和失败的场景。(例如:更新状态)
JDBC没有任何“冲洗”的概念。SQL查询在执行时执行。没有什么要被冲走的东西被保存在记忆中。
由于事务隔离(默认情况下为READ_committed),您的web服务在数据库中不会看到任何您尚未提交的内容。如果确实需要(在web服务中),则必须将隔离级别设置为READ_UNCOMMITTED:
@Transactional(isolation = Isolation.READ_UNCOMMITTED)
我正在尝试从Spring Boot调用SOAP Web服务,但我遇到了问题。我使用maven-jaxb2-plugin从这个WSDL自动生成了类: 遵循本指南:https://spring.io/guides/gs/consuming-web-service/ 我还创建了SOAP客户端来调用TR069CheckDevice可用性。 我的客户端类如下所示: 我的SoapClient配置类是: 问题是
我需要从REST服务调用SOAP Webservice。我在我的项目中使用Spring集成。目前,我正在使用基于xml的配置来实现目标。但我想用java dsl编写代码。请帮助我如何使用Spring集成DSL从REST服务调用SOAP服务。 一个例子会很有帮助。
我必须使用SpringBoot2.0.5从web应用程序构建中调用远程RESTendpoint 我可以使用HttpURLConnection,但由于Spring使用RestTemplate,我检查了它是什么,发现它很快就会被弃用: https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/clien
我正在使用用于ReST web服务的Spring框架Tomcat7。我正在尝试使用Spring RestTemplate调用https web服务。我得到以下错误: 找不到请求目标的有效认证路径;嵌套的异常是javax。网ssl。例外:太阳。安全验证器。ValidatorException:PKIX路径生成失败:sun。安全供应商。certpath。SunCertPathBuilderExcept
null 请帮助,因为我需要有这个基于自定义令牌的SSO启用,也不希望我的auth服务URL暴露在浏览器上。
我在Scala上使用Play 2.5,我创建了一个类,可以多次调用外部web服务。 外部Web服务在某些条件下被调用并得到ok或nok的简单响应。如果可以,那么我应该更新内部对象状态,如果可以,我现在什么也不做。 这是我的类,它将String的列表作为参数,并返回要在控制器中处理的对象的Future列表。 是列表类型的列表,但我希望它只是一个简单的响应列表。 1)如何简化和纠正我的代码以获得响应列