小编Tom*_*lst的帖子

如何使用Spring MVC和Thymeleaf实现Dart?

我目前正在尝试在使用Spring MVC(4.0.0)和Thymeleaf(2.1.1)作为模板引擎的现有项目中实现Dart.

目前我正在部署我所有的Dart资源,/dart如下所示.

<link rel="import" th:href="@{/dart/wb-control-text.html}" />
<script type="application/dart" th:src="@{/dart/packages/polymer/init.dart}"></script>
<script th:src="@{/dart/packages/browser/dart.js}"></script>
Run Code Online (Sandbox Code Playgroud)

Thymeleaf重写网址http://localhost:8080/context/dart/...,这是正确的.

如果直接打开一个packages直接在其下面有文件夹的HTML文件,Dart的效果非常好.但是,在我的项目中并非如此,该项目具有友好的URL,/action/users/browse并且您无法直接访问HTML文件.

Dart库尝试导入包时,我收到404错误,因为它在错误的位置寻找它(例如/dart/packages/polymer/packages/polymer/polymer.dart).

我是否需要提供URL请求处理程序或处理所有**/packages/**请求的过滤器(并且只使用相对于当前URL的路径)?或者在Dart中有一个选项,您可以在其中设置应该查找包的位置?

这个解决方案(或解决方法)是什么?

编辑

我目前有一个有效的临时解决方案,但它很脏,我仍在寻找更清洁的解决方案.

我将包添加到我的类路径中,并创建了一个DartPackagesFilter流式传输资源:

public class DartPackagesFilter extends OncePerRequestFilter

    @Override
    protected void doFilterInternal(final HttpServletRequest request, 
                    final HttpServletResponse response, 
                    final FilterChain filterChain) 
                    throws ServletException, IOException {
        final String uri = request.getRequestURI();

        final int index = uri.indexOf("/packages/"); …
Run Code Online (Sandbox Code Playgroud)

spring-mvc dart thymeleaf

6
推荐指数
1
解决办法
1312
查看次数

如何根据用户属性创建 Spring 会话作用域 bean

我开发了一个 Spring Web-MVC 应用程序。我的项目中有一些办公室。每个用户属于一个办公室。user.getOfficeType()返回一个表示用户办公室类型的整数。如果 office 类型为 1,则用户属于 Office1 等。但是我想将经过身份验证的用户的 office 注入我的服务类:

class MyService{
   @Autowired
   Office currentOffice;
   ...
}
Run Code Online (Sandbox Code Playgroud)

我阅读了 Spring 文档。我需要一个会话范围的 bean 将它注入到我的服务类中。

applicationContext.xml :

<mvc:annotation-driven />
<tx:annotation-driven transaction-manager="hibernateTransactionManager"/>
<context:annotation-config />
<context:component-scan base-package="com.package.controller" />
<context:component-scan base-package="com.package.service" />
...
<bean id="office" class="com.package.beans.Office" scope="session">
    <aop:scoped-proxy/>
</bean>
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我有Office接口的三个实现。一旦用户请求资源,我想知道他的办公室。所以我需要将他的会话范围的 Office 注入我的服务类。但是我不知道如何根据用户的办公室来实例化它。请帮忙!

java spring spring-mvc session-scope spring-bean

6
推荐指数
1
解决办法
3574
查看次数

Spring Batch @StepScope无法生成CGLIB子类

编辑

我创建了一个复制问题的测试项目.它可以在https://github.com/tomverelst/test-batch找到.

首先运行maven命令exec:java以启动HSQL数据库.然后,您可以运行JUnit测试MigrationJobConfigurationTest来加载Spring应用程序上下文.

原始问题

启动Spring Batch应用程序时,Spring加载我的作业配置时出现以下异常:

Caused by: org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.sun.proxy.$Proxy34]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Cannot subclass final class class com.sun.proxy.$Proxy34
Run Code Online (Sandbox Code Playgroud)

这是由@StepScope我的作业配置中的注释引起的.它试图用已经用JDK代理代理的CGLIB代理一个类,我不知道这个JDK代理的来源.

我也试过使用@Scope(value = "step", proxyMode = ScopedProxyMode.NO),但是当调用JDK代理时,我得到一个堆栈溢出错误,它继续调用自己.

如果删除@StepScope注释,应用程序将正确启动,但我需要能够将它们用于我的工作.

Spring配置

<context:component-scan base-package="com.jnj.rn2.batch" />

<context:annotation-config />

<aop:aspectj-autoproxy proxy-target-class="true" />

<bean class="org.springframework.batch.core.scope.StepScope" />

// Job repository etc
...
Run Code Online (Sandbox Code Playgroud)

MigrationJobConfiguration …

java spring spring-aop cglib spring-batch

2
推荐指数
1
解决办法
5687
查看次数

import.io不加载任何网页

当我导入" import.io "时,它不会加载任何网页.我使用Windows 8.1/Win 64,我有Java版本8更新45. 当程序退出时,我得到以下" 错误协议 ":

!SESSION 2015-04-29 11:24:52.715      -----------------------------------------------
eclipse.buildId=unknown
java.version=1.7.0_09
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE
Command-line arguments:  -os win32 -ws win32 -arch x86

!ENTRY org.eclipse.osgi 4 0 2015-04-29 11:25:58.688
!MESSAGE Application error
!STACK 1
org.eclipse.swt.SWTError: XPCOM error 0x80004005
at org.eclipse.swt.browser.Mozilla.error(Mozilla.java:2639)
at org.eclipse.swt.browser.Mozilla.onDispose(Mozilla.java:2658)
at org.eclipse.swt.browser.Mozilla$5.handleEvent(Mozilla.java:966)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1058)
at org.eclipse.swt.widgets.Widget.release(Widget.java:808)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873)
at org.eclipse.swt.widgets.Canvas.releaseChildren(Canvas.java:167)
at org.eclipse.swt.widgets.Widget.release(Widget.java:811)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873)
at org.eclipse.swt.widgets.Canvas.releaseChildren(Canvas.java:167)
at org.eclipse.swt.widgets.Widget.release(Widget.java:811)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873)
at org.eclipse.swt.widgets.Widget.release(Widget.java:811)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873)
at …
Run Code Online (Sandbox Code Playgroud)

java eclipse import.io

2
推荐指数
1
解决办法
220
查看次数