Tag: spring

是否有可能解除Spring bean的问题?

我有一个Spring bean,让我们说: @TransactionAttribute(TransactionAttributeType.REQUIRED) public class AImpl implements A { public void setSomeDependency(D dependency) { // This setter DOES NOT BELONG to interface A } } 现在我想集成测试它,但首先我需要模拟依赖关系D ,因为它做了太多的东西。 由于AImpl实现了一个接口并包含一个事务注释,因此生成的代理只与接口A兼容,所以我可以这样做: @Inject @Named(“aImpl”) private A a; 但不能: @Inject @Named(“aImpl”) private AImpl a; 结果,我无法模仿我的依赖。 请注意,向接口A添加void setSomeDependency(D dependency)不是一个选项,因为它没有业务含义。 它既不使用proxy-target-class=”true” ,因为它会破坏很多其他bean(此属性会影响上下文中的所有bean)。 有没有办法取消注入注入的bean A ,所以我可以把它投射到AImpl ?

java.lang.NoSuchMethodError:org.springframework.core.annotation.AnnotationUtils.isInJavaLangAnnotationPackage(Ljava / lang / annotation / Annotation;)Z

对于Spring和JUnit来说,这是一个新手。 我试图为spring服务类运行一个简单的JUnit测试用例,但它失败了,我得到了这个exception。我还没有编写任何测试,但是在实现之前尝试运行。 使用tomcat v7.0。 我不认为有任何spring冲突的版本。 请帮忙。 java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotationUtils.isInJavaLangAnnotationPackage(Ljava/lang/annotation/Annotation;)Z at org.springframework.test.context.MetaAnnotationUtils.findAnnotationDescriptor(MetaAnnotationUtils.java:126) at org.springframework.test.context.MetaAnnotationUtils.findAnnotationDescriptor(MetaAnnotationUtils.java:96) at org.springframework.test.context.ContextLoaderUtils.resolveActiveProfiles(ContextLoaderUtils.java:499) at org.springframework.test.context.ContextLoaderUtils.buildMergedContextConfiguration(ContextLoaderUtils.java:722) at org.springframework.test.context.ContextLoaderUtils.buildMergedContextConfiguration(ContextLoaderUtils.java:656) at org.springframework.test.context.DefaultTestContext.(DefaultTestContext.java:93) at org.springframework.test.context.TestContextManager.(TestContextManager.java:119) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTestContextManager(SpringJUnit4ClassRunner.java:120) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.(SpringJUnit4ClassRunner.java:109) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:29) at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:21) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.(JUnit4TestReference.java:33) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.(JUnit4TestClassReference.java:25) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:48) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38) […]

根据“尽力而为1PC”模式实现Spring ChainedTransactionManager

最好的努力1PC在这篇文章中很好地描述。 为SpringSource工作的作者David Syer提供了一个扩展Spring AbstractPlatformTransactionManager类的ChainedTransactionManager实现。 此特定事务管理器可以启动n个事务,例如JDBC或JMS会话,并使用AbstractPlatformTransactionManager n个实例执行提交/回滚,每个资源一个。 这在XA驱动程序不可用的情况下非常有用。 由于post很老,代码在Spring 2.5中运行良好,但在Spring 3+中失败了。 在Spring 3+中有一个实现类似function的请求票 。 我愿意尝试一下,但我想我先问:那里有没有实现? 谢谢

HibernateException:无法获取当前线程的事务同步会话

尝试使用我的@Service注释类时,我收到以下exception: org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:134) ~[spring-orm-4.1.1.RELEASE.jar:4.1.1.RELEASE] at org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:1014) ~[hibernate-core-4.3.6.Final.jar:4.3.6.Final] at webapp.base.repository.GenericDaoImpl.saveOrUpdate(GenericDaoImpl.java:59) ~[base-0.0.1-SNAPSHOT-classes.jar:na] at com.example.repository.PageViewDaoImpl.saveOrUpdate(PageViewDaoImpl.java:19) ~[site-0.0.1-SNAPSHOT.jar:na] at com.example.repository.PageViewDaoImpl.saveOrUpdate(PageViewDaoImpl.java:14) ~[site-0.0.1-SNAPSHOT.jar:na] at com.example.service.PageViewServiceImpl.savePageView(PageViewServiceImpl.java:26) ~[site-0.0.1-SNAPSHOT.jar:na] at com.example.interceptor.PageViewInterceptor.preHandle(PageViewInterceptor.java:29) ~[site-0.0.1-SNAPSHOT.jar:na] at org.springframework.web.servlet.HandlerExecutionChain.applyPreHandle(HandlerExecutionChain.java:130) ~[spring-webmvc-4.1.1.RELEASE.jar:4.1.1.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938) ~[spring-webmvc-4.1.1.RELEASE.jar:4.1.1.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) ~[spring-webmvc-4.1.1.RELEASE.jar:4.1.1.RELEASE] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) [spring-webmvc-4.1.1.RELEASE.jar:4.1.1.RELEASE] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857) [spring-webmvc-4.1.1.RELEASE.jar:4.1.1.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:620) [servlet-api-3.0.jar:na] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) [spring-webmvc-4.1.1.RELEASE.jar:4.1.1.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) [servlet-api-3.0.jar:na] […]

使用带有Jersey @Path和@ApplicationPath的Spring属性占位符

我在项目中使用Jersey和Spring。 ‘jersey-spring3’用于它们之间的集成。 我想让我的资源类更灵活,并使用@Path注释中的属性,如: @Path(“${some.property}/abc/def”) 但Spring无法向Jersey的注释@Path和@ApplicationPath注入some.property 。 有什么方法可以在Jersey资源的@Path值中包含一些可配置的(使用属性文件)值吗? (我意识到用Spring MVC替换Jersey会更容易,但不幸的是我没有这个选择。)

土耳其的Java时区(拒绝夏令时)

土耳其最近决定(2016年9月6日)永久停留在夏令时(DST) 。 此行为取消了原定于2016年10月30日04:00:00的夏令时结束。 时钟没有改变。 土耳其在+2 and +3 utc之间,所以现在它将保持在+3。 在这里你可以看到 https://www.timeanddate.com/time/change/turkey/ankara?year=2016 ……在维基百科页面, 土耳其时间以及这篇Hurriyet Daily News文章中, 土耳其全年实施夏令时 。 他们在这里讨论,但我在Spring Boot中有一个应用程序。 Android TimeZone土耳其GMT cmntWrapper.setCreatedAtString(cmnt.getCreatedAt(). now(ZoneId.of(Constants.TURKEY_ZONE)). format(DateTimeFormatter.ofPattern(Constants.DATE_TIME_FORMAT))); 这就是我约会的方式。 这显示现在是13.50小时,但现在是14.50 。 因为我们在+3。 我能做什么? 我不想使用utc + 3,因为他们可以说明年,“让我们再次使用+ 2- + 3切换到夏令时概念”。 所以我不敢冒险。 我不能在未来几周更改代码,它将在几周后保持永久性。 你对永久性的建议是什么? 还有我如何制作java? 因为对于我的测试linux机器,请看这个 puapp @ PU-APP-01:〜$ java版程序’java’可以在以下软件包中找到:* default-jre * gcj-4.8-jre-headless * openjdk-7-jre-headless * gcj-4.6- jre-headless * openjdk-6-jre-headless试试:sudo apt-get install […]

尝试使用Spring运行jUnit测试时出现NoSuchFieldError

到目前为止,我有两个测试。 一个只使用jUnit框架并且工作正常。 另一个使用spring-test库并在每次尝试运行时创建此exception。 什么可能导致问题的想法? 错误 java.lang.NoSuchFieldError: NULL at org.junit.runners.ParentRunner.(ParentRunner.java:48) at org.junit.runners.BlockJUnit4ClassRunner.(BlockJUnit4ClassRunner.java:59) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.(SpringJUnit4ClassRunner.java:104) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:27) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.(JUnit4TestReference.java:32) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.(JUnit4TestClassReference.java:25) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:41) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:31) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) Maven测试依赖项 junit junit 4.7 test org.springframework spring-test ${org.springframework.version} test 依赖树 [INFO] [dependency:tree {execution: default-cli}] [INFO] […]

Spring Batch – 循环读取器/处理器/写入器步骤

回答 根据接受的答案代码,对该代码的以下调整对我有用: // helper method to create a split flow out of a List of steps private static Flow createParallelFlow(List steps) { SimpleAsyncTaskExecutor taskExecutor = new SimpleAsyncTaskExecutor(); taskExecutor.setConcurrencyLimit(steps.size()); Flow[] flows = new Flow[steps.size()]; for (int i = 0; i < steps.size(); i++) { flows[i] = new FlowBuilder(steps.get(i).getName()).start(steps.get(i)).build(); } return new FlowBuilder(“parallelStepsFlow”) .split(taskExecutor) .add(flows) .build(); } […]

预检的响应具有无效的HTTP状态代码401 – Spring

大家。 我是Angular 2和Spring Framework的新手。 我正在尝试使用授权标头(基本身份validation)的简单获取请求。 我正在使用Spring Boot(1.2.6.RELEASE),这也是相关的。 我的CORS配置如下所示。 @Component public class SimpleCorsFilter implements Filter { private final Logger log = LoggerFactory.getLogger(SimpleCorsFilter.class); public SimpleCorsFilter() { log.info(“SimpleCORSFilter init”); } @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res; response.setHeader(“Access-Control-Allow-Origin”, request.getHeader(“Origin”)); response.setHeader(“Access-Control-Allow-Credentials”, “true”); response.setHeader(“Access-Control-Allow-Methods”, […]

java.lang.ClassNotFoundException:org.springframework.web.servlet.DispatcherServlet错误

不知道为什么我会收到此错误。 这里有很多类似的问题,但到目前为止我都没有。 我的常春藤文件是 我的web.xml是 Knox Web Interface action org.springframework.web.servlet.DispatcherServlet 1 action /* 我已经解决了常春藤。 仍然得到错误。 我也可以在日食中看到class级。 我真的很困惑。 任何帮助或建议表示赞赏。 PS:我也尝试添加但常春藤没有解决。 我明白了 Some projects fail to be resolved Impossible to resolve dependencies of #TestWebProject;working@BLT430LT3201C download failed: com.oracle.toplink#toplink;10.1.3!toplink.jar unresolved dependency: com.oracle#oc4j;1.0: not found unresolved dependency: com.oracle#toplink-essentials;2.41: not found unresolved dependency: javax.ejb#ejb;3.0: not found download failed: com.bea.wlplatform#commonj-twm;1.1!commonj-twm.jar unresolved dependency: jexcelapi#jxl;2.6.6: […]