是否可以在J2EE应用程序(EAR)中配置两个单独的Web应用程序(WAR)来访问共享会话上下文?
更多信息:
我最终从EAR创建了一个共享类,它将所需信息存储在静态成员中.即使它看起来像是一个肮脏的黑客,这也成功了.
当我在看Spring FrameWork 3.0时,我看到以下代码示例:
@RequestMapping("/index.dlp")
public ModelAndView index(){
logger.info("Return View");
return new ModelAndView("index");
}
Run Code Online (Sandbox Code Playgroud)
此选项对我不起作用.只有当我按以下方式更改代码时:
@RequestMapping("/index.dlp")
public ModelAndView index(){
logger.info("Return View");
return new ModelAndView("index.jsp");
}
Run Code Online (Sandbox Code Playgroud)
它工作正常.谁能告诉我为什么?
为什么当我从hql编辑器运行查询时发生此异常
org.hibernate.HibernateException: could not instantiate QueryTranslatorFactory: org.hibernate.hql.classic.ClassicQueryTransactionFactory
at org.hibernate.cfg.SettingsFactory.createQueryTranslatorFactory(SettingsFactory.java:391)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:222)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
at org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:264)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:100)
at org.hibernate.cfg.SettingsFactory.createQueryTranslatorFactory(SettingsFactory.java:388)
... 7 more
Caused by: java.lang.ClassNotFoundException: org.hibernate.hql.classic.ClassicQueryTransactionFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:262)
... 13 more
我已将spring framework 3用于我的应用程序.在Netbeans中开发的一切都很好但是我需要一个自定义构建并完成相同的构建没有任何问题,但我得到以下错误调用以下方法时出错
@RequestMapping(value = "/security/login", method = RequestMethod.POST)
public ModelAndView login(@RequestParam String userName, @RequestParam String password,
HttpServletRequest request) {
......................
Run Code Online (Sandbox Code Playgroud)
但是在使用netbeans创建战争时没有问题(我确信这是关于编译问题)你有没有关于这个问题的任何经验......还有任何额外的javac参数用于编译相同的(netbeans用于那里的自定义任务汇编)
类型异常报告
信息
description The server encountered an internal error () that prevented it from fulfilling this request.
例外
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.web.bind.annotation.support.HandlerMethodInvocationException: Failed to invoke handler method [public org.springframework.web.servlet.ModelAndView com.mypackage.security.controller.LoginController.login(java.lang.String,java.lang.String,javax.servlet.http.HttpServletRequest)]; nested exception is java.lang.IllegalStateException: No parameter name specified for argument of type [java.lang.String], and no parameter name information found in class file either. org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:659) …
而不是阅读;
http:// localhost:8080正在请求用户名和密码.该网站称:"Spring Security Application"
我想改变提示,或者至少改变"网站说"的内容.有谁知道如何通过resources.xml做到这一点?
在我的Grails App 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.0.xsd">
<http auto-config="true" use-expressions="true">
<http-basic/>
<intercept-url pattern="/**" access="isAuthenticated()" />
</http>
<authentication-manager alias="authenticationManager">
<authentication-provider>
<user-service>
<user name="admin" password="admin" authorities="ROLE_ADMIN"/>
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>
Run Code Online (Sandbox Code Playgroud) 我正在考虑使用Spring安全注释为我的应用程序,使用EL(表达式语言)功能.例如:
@PreAuthorize("hasPermission(#contact, 'admin')")
public void deletePermission(Contact contact, Sid recipient, Permission permission);
Run Code Online (Sandbox Code Playgroud)
我需要EL功能,因为我已经构建了自己的ACL实现.但是,要将此功能与"#contact"类型参数一起使用,Spring文档会说:
如果代码中包含编译的调试信息,则可以按名称访问任何方法参数作为表达式变量.
这引出了两个问题:
感谢您的任何指导!
大家好,我在做NamedQuery时遇到了一些精确匹配的问题.
我目前正在使用这样的东西:
@NamedQuery(name = MyClass.GET_ENTRY_BY_NAME, query = "select e from Entry e where e.name =:"+ Entry.NAME )
...
Query query = em.createNamedQuery(MyClass.GET_ENTRY_BY_NAME);
query.setParameter(Entry.NAME, myEntry.getName());
Run Code Online (Sandbox Code Playgroud)
它适用于大多数情况,但是我注意到,如果用户在末尾传递带有空格的文件名,则namedQuery会忽略该字符.例如:
Query query = em.createNamedQuery(MyClass.GET_ENTRY_BY_NAME);
query.setParameter(Entry.NAME, myEntry.getName()+ " ");
Run Code Online (Sandbox Code Playgroud)
将返回与之前的查询相同的结果.绕过我的"有效条目"验证.换句话说,我希望查询根本不返回任何条目,稍后再处理错误.
我能想到的一个解决方法是在namedQuery中放置我的参数的单引号,如下所示:
@NamedQuery(name = MyClass.GET_ENTRY_BY_NAME, query = "select e from entry e where e.name =':"+ Entry.NAME "'")
Run Code Online (Sandbox Code Playgroud)
但是,如果String中包含单引号,它将丢弃我的代码...
有什么想法吗?
我知道Vector类对于添加和删除元素[ reference ] 是线程安全的.
如果我使用ObjectOutputStream序列化Vector,我在反序列化时保证了一致(和非损坏)状态,即使其他线程在seralization期间添加和删除对象也是如此?
我试图覆盖扩展另一个接口的接口中的方法声明。这两个接口都使用泛型。根据 Java 教程,这应该是可能的,但该示例不使用泛型。当我尝试实现它时,编译器显示以下错误(我已经替换了名称,因为有些代码不是我自己的。):
InterfaceExtended 中的 myMethod(T) 与 Interface 中的 myMethod(T) 发生冲突;两种方法都具有相同的擦除,但都不会覆盖另一个。
代码如下所示:
public interface Interface<T>
{
public void myMethod(T x);
}
public interface ExtendedInterface<T> extends Interface<T>
{
public void myMethod(T x);
}
Run Code Online (Sandbox Code Playgroud)
如果有人有关于如何改变它以使其可接受的建议,或者关于导致问题的原因的解释,我将非常感激。
谢谢!
坏熊猫
我的spring mvc应用程序有一个ContentNegotiatingViewResolver,它定义了JsonView以呈现json共鸣:
<mvc:annotation-driven/>
<context:component-scan base-package="world.domination.test"/>
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="mediaTypes">
<map>
<entry key="json" value="application/json"/>
</map>
</property>
<property name="defaultViews">
<list>
<bean class="com.secondmarket.connector.springmvc.MappingJacksonJsonViewEx"/>
</list>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
整个应用程序位于根URL"myapp".一切都按照我的需要运作.
第一个问题是:如何在访问某个URL时返回静态html页面?比如,当访问Spring uri/myapp/test时,我想呈现一个位于root webapp文件夹中的html页面/TestStuff.html.
我继续写了一个简单的控制器:
@Controller
@RequestMapping("test")
public class TestConnector {
@Autowired
private RestTemplate tpl;
@RequestMapping(method = RequestMethod.GET)
public String get() {
return "/TestStuff.html";
}
@RequestMapping(method = RequestMethod.POST)
public String post(@RequestParam("url") String url, @RequestParam("data") String data) {
return tpl.postForObject(url, data, String.class, new HashMap<String, Object>());
}
}
Run Code Online (Sandbox Code Playgroud)
get()方法应该告诉Spring呈现TestStuff.html,但是我得到一个错误,说缺少名为"/TestStuff.html"的视图.
在第二个问题是如何避免的必要性,把扩展到的URL.在我的示例中,当我使用/ myapp/test而不是/myapp/test.html时,我的ContentNegotiatingViewResolver使用呈现{}(空花括号)的json视图 …
java ×6
spring ×2
spring-mvc ×2
acl ×1
ant ×1
debugging ×1
generics ×1
grails ×1
hibernate ×1
httpsession ×1
interface ×1
javac ×1
jpa ×1
jpql ×1
named-query ×1
overriding ×1
polymorphism ×1
rest ×1
session ×1
vector ×1
war ×1