Tag: spring

使用websphere 8.5.5进行Spring启动 – UOWManager事务处理失败

我在启动Web应用程序(通过URL)时遇到此exception,它似乎是JTA依赖问题,但我无法修复它。 这适用于Tomcat但在Websphere上失败。 堆栈跟踪 org.springframework.transaction.TransactionSystemException: UOWManager transaction processing failed; nested exception is com.ibm.wsspi.uow.UOWException: java.lang.LinkageError: com/ibm/websphere/uow/UOWSynchronizationRegistry.registerInterposedSynchronization(Ljavax/transaction/Synchronization;)V (loaded from file:/home/parag/IBM/WebSphere/AppServer/plugins/com.ibm.ws.runtime.jar by org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@52adb42a) called from class org.springframework.transaction.jta.WebSphereUowTransactionManager$UOWActionAdapter (loaded from file:/home/parag/IBM/WebSphere/AppServer/profiles/AppSrv01/installedApps/parag-desktopNode01Cell/eplvc-0_0_5_war.ear/eplvc-0.0.5.war/WEB-INF/lib/spring-tx-4.3.18.RELEASE.jar by com.ibm.ws.classloader.CompoundClassLoader@b0248555[appwar:eplvc-0_0_5_war] Parent: com.ibm.ws.classloader.ProtectionClassLoader@e95e3a61 Delegation Mode: PARENT_LAST). at org.springframework.transaction.jta.WebSphereUowTransactionManager.execute(WebSphereUowTransactionManager.java:300) ~[spring-tx-4.3.18.RELEASE.jar:4.3.18.RELEASE] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:301) ~[spring-tx-4.3.18.RELEASE.jar:4.3.18.RELEASE] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) ~[spring-tx-4.3.18.RELEASE.jar:4.3.18.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.18.RELEASE.jar:4.3.18.RELEASE] at org.springframework.aop.interceptor.AsyncExecutionInterceptor$1.call(AsyncExecutionInterceptor.java:115) ~[spring-aop-4.3.18.RELEASE.jar:4.3.18.RELEASE] at java.util.concurrent.FutureTask.run(FutureTask.java:277) [na:1.8.0] at java.lang.Thread.run(Thread.java:811) [na:2.9 (07-25-2018)] […]

插件样式架构与Mavenised组件样式

这是构建Java Spring Web应用程序的更好方法 1)插件样式架构Ex:Blojsom 2)基于组件的体系结构类似于开发特性作为maven依赖项 任何人都可以建议一个很好的插件样式应用程序供参考

Spring Data Rest Override存储库(控制器与AOP)

域/库 Project { User owner; } //Querydsl repositories @RepositoryRestResource public interface ProjectRepository extends PagingAndSortingRepository, QueryDslPredicateExecutor, QuerydslBinderCustomizer { default void customize(QuerydslBindings bindings, QProject project) { (…) } } Requeriment:根据经过身份validation的用户上下文过滤数据: 如果用户是ROLE_PUBLIC根据predicate显示项目,并且用户是owner 。 如果用户是ROLE_ADMIN根据predicatefilter显示项目。 我尝试解决了几个替代方案: 选项1 :覆盖@RepositoryRestController如Spring DATA REST doc所述: @RepositoryRestController public class ProjectController { @RequestMapping(value = “/projects”, method = RequestMethod.GET) @ResponseBody public PagedResources search( @QuerydslPredicate(root=Project.class ,bindings =ProjectRepository.class) […]

将HttpServletResponse注入服务层的最佳方法

我知道这可能不是这样一个问题的最佳设计,只是针对特定要求。 当前应用程序需要ServletContext , HttpServletRequest , HttpServletResponse进入服务层以获得customized authentication provider 。 显然没有任何特定的配置或inheritance代码: @Component(“myAuthenticaionProvider”) public class MyAuthenticaionProvider implements AuthenticationUserDetailsService { @Autowired private ServletContext context; @Autowired private HttpServletRequest request; @Autowired private HttpServletResponse response; ……. } 必须抛出exception: nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [javax.servlet.http.HttpServletResponse] found for dependency: 我能想到的可能解决方案: 使用filter拦截HttpServletRequest ,但是需要URL模式,否则将拦截我认为可能是性能问题的所有URL? 在spring-security.xml或application-context.xml中创建一个request范围bean,然后注入当前的身份validation提供程序类,使其能够获取HttpServletRequest 。 但是我觉得这里有什么问题,比如如何启动请求范围bean? 那么什么是最好的做法?

继续获取:BindingResult和bean名称’index’的普通目标对象都不可用作请求属性

我无法理解我做错了什么。 我有一个控制器: @Controller @RequestMapping(value = “/index.htm”) public class LoginController { @Autowired private AccountService accountService; @RequestMapping(method = RequestMethod.GET) public String showForm(Map model) { model.put(“index”, new LoginForm()); return “index”; } @ModelAttribute(“index”) public LoginForm getLoginForm() { return new LoginForm(); } @RequestMapping(method = RequestMethod.POST) public String processForm(LoginForm loginForm, BindingResult result, Map model) { if (result.hasErrors()) { HashMap errors = […]

restTemplate用body删除

我正在尝试使用请求正文进行DELETE,但我一直收到400(错误的请求)错误。 当我在招摇/邮递员中这样做时,它成功删除了记录。 但是从Java代码我不能这样做 外部API的设计方式需要正文和URL。 它无法改变。 请告诉我如何删除请求正文的条目 public Person delete(Person person, String url, Map uriVariables) throws JsonProcessingException { RestTemplate restTemplate = new RestTemplate(); CustomObjectMapper mapper = new CustomObjectMapper(); HttpEntity requestEntity = new HttpEntity(person); try { ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.DELETE, requestEntity, Person.class, uriVariables); return responseEntity.getBody(); } catch (RestClientException e) { System.out.println(mapper.writeValueAsString(person)); throw e; } } 当它转到exception时,我将以JSON格式获得JSON请求,并且在Swagger […]

Spring JavaConfig – NoSuchBeanDefinitionException:没有类型的唯一bean

我想用一个小测试用例来测试Spring @Configuration ,但它会抛出错误 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有定义[com.mycompany.MavenVaadinSpring.service.UserManager]类型的唯一bean: 我做错了什么? 我的代码如下: AppConfigTest.java : public class AppConfigTest { public static void main(String[] args) { JavaConfigApplicationContext context = new JavaConfigApplicationContext(AppConfig.class); UserManager userManager = context.getBean(UserManager.class); } } AppConfig.java @Configuration @ResourceBundles(“classpath:jdbc-mysql”) public abstract class AppConfig { @Bean public BasicDataSource dataSource() { BasicDataSource basicDataSource = new BasicDataSource(); return basicDataSource; } @Bean public UserDao userDao() { […]

FileUpload文件名编码

我已经有一段时间了,因为我正在敲打这个:多部分/混合内容。 @RequestPart(name=”view”) CoolView, @RequestPart(name=”files”) Part [] files 也使用spring(因为CommonsMultipartResolver失败也没关系): StandardServletMultipartResolver 现在的问题是,当上传具有US_ASCII字符之外的某些名称的文件时,服务器会将它们转换为奇怪的东西。 奇怪的是,我的意思是它将它们转换为ISO_8859_1,我想我已经设想了UTF-8编码可以想象到的地方。 -Dfile.encoding = UTF-8 LANG =“en_US.UTF-8”LC_ALL =“en_US.UTF-8” URIEncoding = UTF-8(在server.xml中的tomcat) CharacterEncodingFilter是第一个被拾取的filter 有趣的是,这只发生在我在azure linux机器上尝试这个时,本地一切都很好。 例如,我使用curl发送一些要上传的文件: curl -X POST -F “files=@Définition fonctionnalités.pdf” 在Controller中,我试图查看实际从Content-Disposition文件名中捕获的名称。 Définition fonctionnalités.pdf 在这一点上,我会接受任何建议。 感谢你

Spring MVC的问题。 如何从两个或多个对象创建视图?

[春季3.0.5] [jboss 5.1] 一个有两个class级 public class User { private String name; private String surname; private Address address; … sets and gets setters and getters } public class Address { private String street; … setters and getters } 在Controller我有这个代码: @Controller public class MyController { @RequestMapping(value = “/index”) public ModelAndView showForm() { ModelAndView mav = new ModelAndView(); […]

如何只使用一个连接在hibernate中执行嵌套事务?

问题的上下文我想解决:我有一个java spring http拦截器AuditHttpCommunicationInterceptor,用于审核与外部系统的通信。 执行通信的HttpClieant在java服务类中使用,该服务类执行一些名为DoBusinessLogicSevice的业务逻辑。 DoBusinessLogicSevice打开一个新的事务,并使用几个协作者完成大量的事情。 要解决的问题:无论DoBusinessLogicSevice中的任何操作的结果如何(意外的exception等),我都希望AuditHttpCommunicationInterceptor将审计存储在数据库中。 我使用的解决方案:AuditHttpCommunicationInterceptor将以这种方式打开一个新事务: TransactionDefinition transactionDefinition = new DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_REQUIRES_NEW); new TransactionTemplate(platformTransactionManager, transactionDefinition).execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus status) { // do stuff } }); 一切正常。 当DoBusinessLogicSevice的一部分抛出意外exception时,其事务将被回滚,但AuditHttpCommunicationInterceptor会将审计存储在数据库中。 此解决方案产生的问题:AuditHttpCommunicationInterceptor使用新的数据库连接。 因此,对于每个DoBusinessLogicSevice调用,我需要2个db连接。 基本上,我想知道问题的解决方案:在这种情况下,如何使TransactionTemplate“挂起”当前事务并重新使用新连接。 有任何想法吗? 🙂 PS一个想法可能是采用不同的设计方法:删除拦截器并创建一个直接在DoBusinessLogicSevice中使用的AuditingHttpClient(不是由spring调用)但我不能这样做,因为我无法访问那里的所有http字段。