我正在尝试在Grails项目中使用加载时编织,以便能够序列化和反序列化对象并自动注入spring依赖项.经过一番搜索后,我发现了一个简单的例子,它似乎按预期工作.但在将相同的配置应用于简单的Grails项目后,我遇到了很多错误.例如:
[TomcatInstrumentableClassLoader@413a2870] error at org/springframework/web/servlet/theme/AbstractThemeResolver.java::0 class 'org.springframework.web.servlet.theme.AbstractThemeResolver' is already woven and has not been built in reweavable mode
Run Code Online (Sandbox Code Playgroud)
为了测试这个,我创建了一个新的grails项目并更改了applicationContext.xml:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:spring-configured />
<context:load-time-weaver aspectj-weaving="autodetect" weaver-class="org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver"/>
Run Code Online (Sandbox Code Playgroud)
在这个文件中我还创建了一个新bean:
<bean class="be.testweaving.Person" scope="prototype">
<property name="name" value="Timon"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
这定义了Person类的原型并将值Timon注入name属性.
我把它打包成战争使用grails war并在tomcat服务器上部署它.这个tomcat有org.springframework.instrument.tomcat-3.0.5.RELEASE.jar他的lib目录,在部署之后我看到了我上面提到的大量错误列表.
有没有人能够在Grails中配置加载时间编织?
在我的Spring MVC Web应用程序中,只有具有足够权限的用户才能访问某些区域.我需要能够允许用户以不同的用户身份登录才能使用这些页面(有点像覆盖),而不仅仅是"拒绝访问"消息.
如何使用Spring Security执行此操作?
这是我期待的流程,更详细一点:
注意:页面X有一个需要保留的大而长的查询字符串.
如何使用Spring Security执行此操作?
这是我的spring安全配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.1.xsd">
<debug />
<global-method-security pre-post-annotations="enabled">
<!-- AspectJ pointcut expression that locates our "post" method and applies
security that way <protect-pointcut expression="execution(* bigbank.*Service.post*(..))"
access="ROLE_TELLER"/> -->
</global-method-security>
<!-- Allow anyone to get the static resources and the login page by not applying the security filter chain -->
<http pattern="/resources/**" security="none" />
<http pattern="/css/**" security="none" />
<http pattern="/img/**" security="none" …Run Code Online (Sandbox Code Playgroud) 我正在设计一个系统,用户之间的帖子/讨论可以升级成票.在一个特定的地方,我正在尝试创建一对一的可选关系,但遇到了某些问题.下面给出了聚光灯下实体的精简版本.
规则:
Post.groovy
class Post {
String title
String description
String postedBy
Ticket ticket
static hasMany = [comments: Comment]
static constraints = {
title(blank:false)
description(blank:false)
postedBy(blank:false)
ticket (nullable:true,unique:true)
}
}
Run Code Online (Sandbox Code Playgroud)
Ticket.groovy
class Ticket {
String title
String description
String postedBy
Post post
static hasMany = [responses: Response]
static constraints = {
title(blank:false)
description(blank:false)
postedBy(blank:false)
post (nullable:false,unique:true)
}
}
Run Code Online (Sandbox Code Playgroud)
这在某种程度上起作用.我可以:
但是,此映射不会在域级别强制执行.它为Ticket1指向Post1的情况留出了空间,但Post1指向了Ticket2.
我尝试static hasOne = [post: Post]在Ticket类中使用a ,但后来才知道它要求static belongsTo = [ticket: Ticket]在 …
在Java中计算和操作概率,然后将其表示为百分比时,用于表示它们的最佳数据结构是什么?
本机double并且float看起来不是特别理想的候选者,因为它们具有奇怪的舍入问题,当舍入发生多次并且变得复杂时可能引入错误.
BigInteger适用于计算排列和组合,BigDecimal看起来它可能是非整数值的一个很好的候选者,但有没有更适合处理百分比的东西?
注意:在这种情况下,计算的概率在性质上与涉及卡片的概率相似,但有数百张卡.对于更多的数学倾向,我特别使用多变量Hypergeometric_distributions.
我有一个像这样的Grails域:
class User {
....
Address address
}
Run Code Online (Sandbox Code Playgroud)
在保存用户的同时,我也要验证Address对象,并将Address对象的所有错误添加到User对象本身.
我正在尝试编写一个自定义验证器it.validate(),但我无法找到"addAll"地址错误消息的方法.
我的控制器层用spring oauth2包裹.我正在编写集成测试来测试对控制器的api调用,所以我决定使用RestTemplate.
以下是我通过curl使用的命令:
curl -v --cookie cookies.txt --cookie-jar cookies.txt "http://localhost:8080/oauth/token?client_id=my-trusted-client&grant_type=password&scope=trust&username=xxxx&password=xxxxxx"
Run Code Online (Sandbox Code Playgroud)
这将返回一个访问令牌,我用它来调用api:
curl -v -H "Authorization: Bearer Access toekn value" "http://localhost:8080/profile/1.json"
Run Code Online (Sandbox Code Playgroud)
在使用时RestTemplate,我能够获得访问令牌,但现在我想传递此令牌来进行api调用:
DefaultHttpClient client = new DefaultHttpClient();
HttpHeaders headers = new HttpHeaders();
headers.set("Authorization: Bearer", accessToken);
System.out.println(accessToken);
HttpEntity<String> entity = new HttpEntity<String>(headers);
System.out.println(restTemplate.exchange("http://localhost:8080/xxxx",HttpMethod.GET,entity,Object.class));
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误:
Exception in thread "main" org.springframework.web.client.HttpClientErrorException: 401 Unauthorized
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:75)
at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:486)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:443)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:401)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:377)
at com.gogii.service.SKUService.testGetAllSKU(SKUService.java:20)
Run Code Online (Sandbox Code Playgroud)
我们如何使用经过身份验证的呼叫RestTemplate?
我正在研究如何创建自定义角色前缀,直到我意识到它无关紧要.只要我的db中的角色符合以下内容:
<security:intercept-url pattern="/person/myProfile/**" access= "hasRole('BlaBla')" />
Run Code Online (Sandbox Code Playgroud)
并且它不是示例,在db中我确实设置角色BlaBla进行测试并且它有效.
当我得到不同的行为时,我不喜欢 - 很多人都有设置自定义前缀来创建自定义角色的问题.在这里会发生什么,我应该期待隐藏的岩石吗?
我有3.0.7版本.在我对权限的查询中,我没有"默认"值......是否由版本引起?
我怎样才能让textarea最初只有1行,但是当文本到达行尾时添加另一行,并继续这样做直到最多5行?
我试图在IDEA中使用GDSL Scripts作为我的grails项目.
我尝试了"指南:GDSL指南"中所示的内容.我遵循的步骤是:
在该文件中,我添加了以下代码:
def ctx2 = context(ctype: "com.myPackage.MyClass")
contributor(ctx2) {
method(name: 'withLock', type: 'void', params: [closure: { }])
}
Run Code Online (Sandbox Code Playgroud)单击"激活".
但是,当我这样做时,它仍然没有显示任何自动完成或识别:
Myclass m = new MyClass()
m.withLock() //This is not recognised
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么???:(
细节:
我使用Hibernate几年但不确定Query和Criteria的用法.
我明白,Hibernate的优势之一就是在一个地方控制字段名称.如果我有以下代码:
List cats = sess.createCriteria(Cat.class)
.add( Restrictions.like("name", "Fritz%") )
.add( Restrictions.between("weight", minWeight, maxWeight) )
.list();
Run Code Online (Sandbox Code Playgroud)
如果我在java对象中更改Cat的"名称"怎么办?
即使使用重构替换(如在Elipse中),它也不会将元素检测为需要更改的内容!
如果是这样,你如何在Java中维护字段名称?
grails ×4
java ×4
spring ×3
spring-mvc ×2
aop ×1
css ×1
domain-model ×1
dsl ×1
grails-orm ×1
hibernate ×1
jquery ×1
prefix ×1
refactoring ×1
roles ×1
textarea ×1
validation ×1