我想在我写的servlet里面访问seam组件
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
String pass=req.getParameter("pass");
String name=req.getParameter("name");
//访问seam组件 下面在别的地方可以--在本servlet里面访问不到
final EmployeeQuery employeeQuery = (EmployeeQuery) Component.getInstance(EmployeeQuery.class); //报错 在seam容器里面这里不会报错
//Object object=Component.getInstance("com.sunning.cross.ui.resources.client.rpc.SecurityService");
SecurityServiceImpl security=(SecurityServiceImpl) Component.getInstance(SecurityServiceImpl.class);
if(security.isLogin()){
}else {
security.login(name, pass);
resp.sendRedirect("/Explorer.seam");
}
}
下面是错误信息
16:05:02,437 ERROR [[AutoLoginServlet]] Servlet.service() for servlet AutoLoginServlet threw exception
java.lang.IllegalStateException: No application context active
at org.jboss.seam.Component.forName(Component.java:1945)
at org.jboss.seam.Component.getInstance(Component.java:2005)
at org.jboss.seam.Component.getInstance(Component.java:1983)
at org.jboss.seam.Component.getInstance(Component.java:1977)
at org.jboss.seam.Component.getInstance(Component.java:1957)
at org.jboss.seam.Component.getInstance(Component.java:1952)
at com.sunning.cross.ui.explorer.server.servlet.AutoLoginServlet.doPost(AutoLoginServlet.java:37)
at com.sunning.cross.ui.explorer.server.servlet.AutoLoginServlet.doGet(AutoLoginServlet.java:26)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
解决方法
通过get方法访问
protected void doGet(final HttpServletRequest req, final HttpServletResponse resp)
throws ServletException, IOException {
new ContextualHttpServletRequest(req) {
public void process() throws Exception {
doLogin(req,resp);
}
}.run();
}
分享到:
相关推荐
1. **组件(Components)**: Seam的核心是组件模型,它允许开发者定义和管理应用中的对象。组件可以是简单的Java类,也可以是EJB或JSF Managed Beans。Seam自动管理组件的生命周期,包括创建、初始化、销毁等过程。 ...
在"Seam - 语境相关的组件"这一主题中,我们首先要理解什么是语境相关的组件。在Seam框架中,每个组件都与特定的执行环境或“语境”相关联。这意味着组件可以根据当前的业务流程、用户会话或特定的上下文条件来提供...
Seam - 语境相关的组件[满江红20071230]............................................................................................................................ 1 Java EE 框架...........................
- 一个Seam组件类,可能包含一些业务逻辑或数据访问操作。 - 相关的配置文件,如`pom.xml`(如果使用Maven构建),`seam.properties`,`web.xml`和`faces-config.xml`。 - 可能还会有数据库连接配置和实体类,如果...
这涉及到在web.xml文件中配置Seam Filter和Seam Listener,以便处理JSF请求生命周期中的事件,并确保Seam组件与JSF页面正确交互。 #### 1.1.2. 使用Facelets Facelets是JSF推荐的视图表示技术,提供了更简洁、可...
在Seam中,组件可以看作是应用中的独立单元,它们在特定的上下文中被创建、管理和销毁。上下文是Seam的一个重要概念,它定义了组件生命周期的边界以及组件之间的依赖关系。例如,一个会话上下文中的组件在整个会话...
这意味着组件可以直接获取页面提交的数据,同时页面也可以直接访问组件中的数据。此外,Seam还集成了数据验证,允许在Entity Bean中定义数据约束,这些约束在页面上即可直接应用,类似于Ruby on Rails的验证机制。这...
4. **部署上下文**:Seam2通常假设在JNDI下可以找到其组件和服务,但在Tomcat中,你可能需要创建一个名为`META-INF/components.xml`的文件来声明和配置Seam组件。 5. **测试和调试**:在Tomcat中运行Seam应用可能...
- **组件部署描述文件**:`components.xml` 配置了 SEAM 组件。 - **Web部署描述文件**:`web.xml` 配置了 Web 应用的基础设置。 - **JSF配置**:`faces-config.xml` 定义了 JSF 的视图转换规则。 - **EJB部署...
在"MyRegistration"这个例子中,我们可以假设这是一个完整的Seam项目,包括了EJB组件和JSF前端。"MyRegistration-ejb"可能包含了所有EJB实体和业务服务,它们负责处理数据访问和业务逻辑。"MyRegistration-ear"则是...
在JSF项目中配置Seam,可以充分利用其优势,如组件管理、对话管理、事件处理等。 首先,配置Seam的关键在于以下几个方面: 1. **阶段监听器配置**:在`faces-config.xml`中添加`SeamPhaseListener`。这是Seam启动...
Seam组件是Seam框架的核心组件,提供了一个统一的编程模型,能够将JSF、EJB、JPA等技术整合在一起。Seam组件可以分为两种:有状态的会话Bean和无状态的会话Bean。有状态的会话Bean可以维护会话状态,而无状态的会话...
首先,Seam框架的核心依赖于JSF,这是Java EE中的一个用户界面组件框架,用于构建交互式Web应用。JSF提供了模型-视图-控制器(MVC)架构,通过组件和事件处理机制来处理用户交互。在压缩包中,你会找到如`jsf-api....
5. **持久化与数据访问**:研究Seam如何通过JPA进行数据存储和检索,以及Seam的缓存和查询优化功能。 6. **国际化与本地化**:学习如何在Seam项目中实现多语言支持。 7. **测试与调试**:掌握Seam的测试工具和策略,...
Seam是一个强大的Java EE框架,它集成了多种技术,如JavaServer Faces (JSF)、Enterprise JavaBeans (EJB)、Java Persistence API (JPA)以及 Seam自身的组件模型,旨在简化企业级应用的开发过程,提高开发效率。...
- **第4章:组件和上下文**:讲解 Seam 中组件和上下文的基本概念,以及它们如何协作来实现业务逻辑。 - **第5章:Seam组件描述符**:介绍如何使用 Seam 组件描述符来定义组件的行为和配置。 - **第6章:绝对控制...
Seam扩展了Servlet规范中的三个上下文(请求、会话、应用程序),引入了两个新上下文:对话(conversation)和业务流程。这一特性允许开发者以声明式的方式管理组件状态,简化了复杂应用的开发。 #### 5. Bijection...
在现代Web应用开发中,JavaServer Faces (JSF)、Seam框架和Java Persistence API (JPA)是三个关键的技术组件。本实例将深入探讨如何利用这三者进行联合开发,帮助开发者实现高效、可维护的业务逻辑和用户界面。 **...
Seam组件可能是 态义 关关 态 有状 的,包含与几个定 良好的上下文中任何一个相 的状 , 包括长开间运行上 下文、持久化上下文、业务流程上下文, 以及用户够交互中能 跨多个 Web请求保存的务 务上下文。