标签: struts

在我的网络应用程序中从spring获取"未找到线程绑定请求"错误

我在我的网络应用程序中收到"未找到线程绑定请求"错误,并希望得到一些帮助.我正在尝试使用struts2 + spring + hibernate,并使用spring来管理hibernate会话工厂,并将hibernate会话注入我的struts操作.我希望这是有道理的.当应用程序启动时,没有错误,但是当我发出第一个Web请求时,它会弹出"未找到线程绑定请求"错误.这是我的春季配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
  <bean id="hibernateSessionFactory" scope="singleton"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="configLocation" value="classpath:hibernate.cfg.xml" />
  </bean>
  <bean id="hibernateSession" factory-bean="hibernateSessionFactory"
    factory-method="openSession" destroy-method="close" scope="request" class="org.hibernate.Session" />
</beans>
Run Code Online (Sandbox Code Playgroud)

这是我的行动:

package actions.events;
import org.hibernate.Session;

public class Listing {
  Session session;
  public void setHibernateSession(Session value) throws Exception
  {
    session = value;
  }

  public String execute() {
    return "success";
  }
}
Run Code Online (Sandbox Code Playgroud)

我唯一的领先是,如果我删除上面的'setHibernateSession'函数,我不会得到错误,因为如果动作不需要一个(懒惰的实例化),大概春天不打扰创建会话.

这是例外:

Unable to instantiate Action, actions.events.Listing, defined for 'Listing' in namespace '/events'Error creating bean with …
Run Code Online (Sandbox Code Playgroud)

java spring struts hibernate struts2

25
推荐指数
2
解决办法
4万
查看次数

为什么在struts 1.*中使用'redirect = true'?

ActionMessages在执行一个没有显示的动作时遇到了一些问题,我发现我的问题是由于我的前锋redirect=true在struts-config.xml中.

由于默认行为是redirect=false,我一直在考虑可以使用哪些好处redirect=true,我找不到任何答案.有谁知道何时以及为什么redirect=true应该在行动中使用?

struts

23
推荐指数
2
解决办法
5万
查看次数

Java Web应用程序中的异常处理

我正在开发一个中型Java Web应用程序,Struts作为MVC框架,在数据访问层使用简单的JDBC.我一直在寻找这种应用程序中的异常处理最佳实践.我发现了几篇文章,其中一些是矛盾的,只会让我更加困惑,而不是让事情变得简单明了.有人说重用现有异常而不是定义特定于应用程序的异常更好,其他异常则为系统中可能发生的每个小麻烦提供了一个巨大的应用程序特定异常层次结构.有人说最好不要在数据访问层处理异常并将它们委托给服务层,其他人则说应该在本地捕获数据访问层异常,因为将它们委托给服务层会违反两层之间的抽象.等等.

如果您让我知道文章/书籍的链接/名称,我会非常感谢您提供在这种情况下适合您的可靠解决方案.解决方案应至少清楚以下几点,并提出理由:

  1. SQLExceptions被捕获的位置?
  2. 应该记录例外情况?
  3. 是否应记录未经检查的异常?
  4. 是否应该在表示层捕获未经检查的异常,是否应该向用户显示?
  5. 如何处理已检查的异常,将哪些异常显示给用户以及如何处理?
  6. 应该如何使用全局异常处理程序页面?
  7. 在这种情况下如何使用struts ActionErrors?

谢谢

java logging struts exception-handling web-applications

23
推荐指数
1
解决办法
1万
查看次数

使用struts令牌进行跨站点请求防伪

我想为我的Web应用程序实现跨站点请求防伪,这是基于struts 1.x框架.我知道struts 2框架为此提供了令牌拦截器,我可以使用过滤器实现类似的功能.

我很少有人认为1)我怎么能用简单的方式生成独特的令牌呢?(我可以为此目的使用Action类令牌,用于避免重复的表单提交)

使用struts 1.x框架令牌机制进行CSRF预防是否存在任何问题

java struts cross-domain struts-1

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

java.lang.IllegalStateException:找不到WebApplicationContext:没有注册ContextLoaderListener?

这是WEB-INF中的文件web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>

    <filter>
        <filter-name>LoginFilter</filter-name>
        <filter-class>glpi.filter.LoginFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>LoginFilter</filter-name>
        <url-pattern>/index.jsp</url-pattern>
    </filter-mapping>

     <servlet>
        <servlet-name>context</servlet-name>
        <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
     </servlet>

     <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
     </servlet>

         <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
            <param-name>config</param-name>
            <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
            <param-name>debug</param-name>
            <param-value>2</param-value>
        </init-param>
        <init-param>
            <param-name>detail</param-name>
            <param-value>2</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>

     <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>/login.jsp</welcome-file>
    </welcome-file-list>

</web-app>
Run Code Online (Sandbox Code Playgroud)

spring struts servlets

19
推荐指数
3
解决办法
7万
查看次数

注入自动连接的依赖项失败; 嵌套异常是org.springframework.beans.factory.BeanCreationException:

我正在使用Spring,Hibernate,Struts和Maven创建Web应用程序.

运行mvn clean install命令时出现以下错误:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.project.action.PasswordHintActionTest': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.project.action.PasswordHintAction com.project.action.PasswordHintActionTest.action; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.project.action.PasswordHintAction] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
Run Code Online (Sandbox Code Playgroud)

以下是具有Autowired依赖关系的类:

import com.opensymphony.xwork2.Action;
import org.project.model.User;
import org.proejct.service.UserManager;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.subethamail.wiser.Wiser;

import static org.junit.Assert.*;
public class PasswordHintActionTest extends BaseActionTestCase { …
Run Code Online (Sandbox Code Playgroud)

java spring struts hibernate spring-mvc

19
推荐指数
1
解决办法
16万
查看次数

Hibernate NoSuchFieldError INSTANCE但只适用于Struts 1?

我是Java和Hibernate的新手(是Rails和C#开发人员).无论如何,我有一个测试程序,可以正常使用Hibernate但我的实际Web应用程序(Struts 1)崩溃:

SEVERE: Servlet.service() for servlet default threw exception java.lang.NoSuchFieldError: INSTANCE

我在用:

Hibernate 3.6.1 with Annotations

Struts 1 with Apache Tiles

C3P0 connection pool

下面是实际的程序WORKS.这是主要项目的一部分.只是一个简单的JAVA测试.

public class TestUser {

  public static void main(String[] args) {

    SessionFactory factory = HibernateUtil.getSessionFactory();
    Session session = factory.getCurrentSession();
    session.beginTransaction();

    String queryString = "from User where UserName = 'Quake'";
    Query query = session.createQuery(queryString);

    User quake = (User)query.uniqueResult();
    session.getTransaction().commit();

    System.out.println( quake.getEmail() );
    System.out.println( "Active? " + quake.isActive() );


    UserRepository userRepo = new UserRepository();

    System.out.println( "User …
Run Code Online (Sandbox Code Playgroud)

java struts hibernate

18
推荐指数
1
解决办法
4万
查看次数

Struts 1的文档是否仍可在线获取?

我需要维护一个Struts 1应用程序.我知道,EOL差不多两年前,六年内没有新版本.无论如何,我们在Struts 1应用程序中拥有10万行工作代码,并且它不会因为我有更多现代感觉而消失.

我已经找了文档,所以我可以理解这个古老的框架,而且我是空的.这个链接坏了.如果您不计算EOL公告,此网站似乎只有Struts 2信息.

有没有人知道托管旧文档的网站?如果有人能指出Struts 1.2.7的文档,我将非常感激.

documentation struts struts-1

18
推荐指数
3
解决办法
9903
查看次数

Firefox在Struts应用程序中剪切名称包含空格的文件

我正在使用下一个类(为了便于理解而简化)在struts web应用程序中下载图像.它在每个浏览器中运行良好,但firefox,它切割包含空格的名称.这就是说:带有spaces.pdf的文件在firefox中下载为:file,而在chrome中,IE7 IE6作为文件下载到spaces.pdf.

public class Download extends Action {
    private static final int BUFFER_SIZE = 4096;    

    public ActionForward execute(ActionMapping mapping,
        ActionForm     form,
        HttpServletRequest request,
        HttpServletResponse response) throws Exception {
        String filename = "file with spaces.pdf";
        File file =  ... // variable containing the file;
        response.setStatus(HttpServletResponse.SC_OK);
        response.setContentType(getMimeType(request, file));
        response.setHeader("Content-Type", getMimeType(request, file));
        response.setHeader("Content-Disposition","attachment; filename="+ filename);
        InputStream is = new FileInputStream(file); 
        sendFile(is, response);
        return null;
   }  

   protected String getMimeType(HttpServletRequest request, File file) {
        ServletContext application …
Run Code Online (Sandbox Code Playgroud)

java firefox struts

17
推荐指数
1
解决办法
5961
查看次数

防止IE缓存

我正在使用Struts开发Java EE Web应用程序.问题出在Internet Explorer缓存上.如果用户注销,他可以访问某些页面,因为它们被缓存并且没有请求.如果我点击刷新它工作正常.此外,如果用户再次进入登录页面,则不会重定向他,因为该页面也被缓存.

我想到了两个解决方案:

  1. 编写一个Interceptor(像servlet过滤器一样)来添加到响应头no-cache等.
  2. 或者<meta>在每个页面上放置标签.

我应该做哪一个?

java internet-explorer jsp struts browser-cache

17
推荐指数
2
解决办法
3万
查看次数