我正在尝试使用Guice来注入JSF托管bean的属性.这一切都在Google App Engine上运行(可能重要也可能不重要)
我按照这里的说明操作:
http://code.google.com/docreader/#p=google-guice&s=google-guice&t=GoogleAppEngine
一个问题是第一步.我无法继承Servlet模块并在那里设置我的servlet映射,因为Faces由javax.faces.webapp.FacesServlet处理,它是Servlet的子类,而不是HttpServlet.因此,我尝试将我的servlet配置保留在web.xml文件中,并在第二步中描述的上下文侦听器中创建注入器时,简单地实例化一个新的ServletModel()以及我的业务模块.
完成所有这些以及web.xml配置后,我的托管bean没有注入任何属性.方法如下
@ManagedBean
@ViewScoped
public class ViewTables implements Serializable
{
private DataService<Table> service;
@Inject
public void setService( DataService<Table> service )
{
this.service = service;
}
public List<Table> getTables()
{
return service.getAll();
}
}
Run Code Online (Sandbox Code Playgroud)
所以,我想知道是否有一个技巧让Guice注入JSF托管bean?我显然不能使用构造函数注入,因为JSF需要一个no-arg构造函数来创建bean.
我有Spring安全性成功评估了我的控制器上的@PreAuthorize.如果我使用"permitAll"然后我可以查看页面,如果我使用"isAuthenticated()",那么我得到一个丑陋的访问被拒绝的堆栈跟踪.如果我将配置放在我的安全上下文配置xml文件中的http节点内的intercept-url中,那么我很好地重定向到登录页面,而不是在我的页面中获得令人讨厌的堆栈跟踪.
有没有办法让我只使用注释机制进行重定向?
在我的spring配置文件中 <global-method-security pre-post-annotations="enabled"/>
在我的春季@Controller中,我有一个@RequestMapping,其上具有一个@PreAuthorize,如下所示:
@PreAuthorize("true == false")
@RequestMapping(value="/image", method=RequestMethod.GET )
@ResponseBody
public ResponseEntity<byte[]> getImage(
@RequestParam(value="imageSet", required=false) Long imageSetKey
, @RequestParam(required=false, defaultValue="70") Integer size
, @RequestParam(required=false) Unit unit
, @RequestHeader( value="if-none-match", required=false ) String etag
)
{
// use the latest and greatest for the unit if they specify the unit, otherwise use the imageSetKey they pass in.
if ( unit != null )
{
return getUnitImage( unit, size, etag );
}
// more code to do other stuff
}
Run Code Online (Sandbox Code Playgroud)
现在,此@PreAuthorize已评估并且可以正常工作。如果将PreAuthorize放在getUnitImage方法上,则不会对其进行评估,并且我可以很好地进入该方法。这是不评估@PreAuthorize的方法。 …
好的我是初学者,我必须修复这个java表达式语言代码才能在我的系统中运行(Windchill),但看起来我在语法中缺少一些东西:
LWCNormalizedObject lwc = new LWCNormalizedObject(cr, null, null, null);
lwc.load(wt.change2.WTChangeRequest2.theCategory);
Object bUnit = lwc.get(wt.change2.WTChangeRequest2.theCategory);
If ((bUnit.toString()).equals("PRODUCT_IMPROVEMENT")) {
wt.team.Team team = (wt.team.Team) ( (wt.workflow.engine.WfProcess) self.getObject() ).getTeamId().getObject();
java.util.Enumeration principals = team.getPrincipalTarget(wt.project.Role.toRole("Product Manager"));
while(principals.hasMoreElements())
{
wt.org.WTPrincipal wtprincipal = ((wt.org.WTPrincipalReference)principals.nextElement()).getPrincipal();
System.out.println("principal = " + wtprincipal.getPrincipalDisplayIdentifier());
wt.team.TeamHelper.service.addRolePrincipalMap(wt.project.Role.toRole("Change Admin II "),wtprincipal, team );
}
}
Run Code Online (Sandbox Code Playgroud)
我在第4行遇到错误:
If ((bUnit.toString()).equals("PRODUCT_IMPROVEMENT")) {
Run Code Online (Sandbox Code Playgroud)
任何帮助将受到高度赞赏= D.