你可以帮我映射一下Hbernate吗?
public class MyClass{
private Long id;
private String name;
private int[] values;
...
}
Run Code Online (Sandbox Code Playgroud)
我正在使用PostgreSQL,表格的列类型是整数[]我的数组应该如何映射?
我疯了,无法理解问题所在:
我有以下结构:
SpringMVC
+WebContent
-web-inf
-web.xml
-springMVC-servlet.xml
-index.jsp
-security
-login.jsp
Run Code Online (Sandbox Code Playgroud)
web.xml中
<display-name>springMVC</display-name>
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/index.html</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
Run Code Online (Sandbox Code Playgroud)
用SpringMVC-servlet.xml中
<?xml version="1.0" encoding="UTF-8"?>
<beans xsi:schemaLocation=" http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans">
<context:annotation-config/>
<context:component-scan base-package="com.vanilla.springMVC"/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name="prefix">
<value>/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
Run Code Online (Sandbox Code Playgroud)
我的控制器:
package com.vanilla.springMVC;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.portlet.ModelAndView; …Run Code Online (Sandbox Code Playgroud) 有没有办法在Java中生成8个字符长的随机和唯一的字符串?
String id = getRandomString();
Run Code Online (Sandbox Code Playgroud)
然后Id就是例如 wf41Av5g
我设置了会话时间.
<session-config>
<session-timeout>11520</session-timeout>
Run Code Online (Sandbox Code Playgroud)
</session-config>
每次当我关闭浏览器并通过调用servlet再次打开它时,我看到创建了新会话.每次重新打开浏览器时,都可以从HttpSessionListener中执行的SessionCreated方法中看到.
我是tomcat/Java的新手,但如果我在ASP.NET环境中工作,我会解决它设置与会话名称相同的cookie.
在Tomcat中解决它的最佳实践是什么?
先感谢您.
丹尼.
我有以下代码,我将实现/ getJson将返回用户对象的功能,因为json和/ getJson2将返回user2作为Json对象.
@ParentPackage("json-default")
public class JsonAction extends ActionSupport{
private User user = new User("John","Smith");
private User user2 = new User("Smith","John");
public String populate(){
return "populate";
}
@Action(value="/getJson", results = {
@Result(name="success", type="json")})
public String test(){
return "success";
}
@Action(value="/getJson2", results = {
@Result(name="success", type="json")})
public String test2(){
return "success";
}
@JSON(name="user")
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@JSON(name="user2")
public User getUser2() {
return user2;
}
public void setUser2(User user2) …Run Code Online (Sandbox Code Playgroud) 我想自定义Spring security 3.0.5并将登录URL更改为/ login而不是/ j_spring_security_check.
我需要做的是允许登录到"/"目录并保护"/admin/report.html"页面.
首先,我使用教程和Spring Security源代码创建自己的过滤器:
public class MyFilter extends AbstractAuthenticationProcessingFilter {
private static final String DEFAULT_FILTER_PROCESSES_URL = "/login";
private static final String POST = "POST";
public static final String SPRING_SECURITY_FORM_USERNAME_KEY = "j_username";
public static final String SPRING_SECURITY_FORM_PASSWORD_KEY = "j_password";
public static final String SPRING_SECURITY_LAST_USERNAME_KEY = "SPRING_SECURITY_LAST_USERNAME";
private String usernameParameter = SPRING_SECURITY_FORM_USERNAME_KEY;
private String passwordParameter = SPRING_SECURITY_FORM_PASSWORD_KEY;
protected MyFilter() {
super(DEFAULT_FILTER_PROCESSES_URL);
}
@Override
public Authentication attemptAuthentication(HttpServletRequest request,
HttpServletResponse response)
throws AuthenticationException, IOException, ServletException {
String username = obtainUsername(request); …Run Code Online (Sandbox Code Playgroud) 我正在将我的项目从Spring 3.0 + hibernate 3.6.x迁移到S3.1 + H4.1
我的新代码如下
<context:component-scan base-package="x.y.z">
</context:component-scan>
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.x</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="annotatedClasses">
<list>
<value>x.y.z.entities.Student</value>
</list>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<aop:config>
<aop:pointcut id="daoServicePoint"
expression="execution(* x.y.z.StudentDao.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="daoServicePoint"/>
</aop:config>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="get*" propagation="SUPPORTS" read-only="true"/>
</tx:attributes>
</tx:advice>
Run Code Online (Sandbox Code Playgroud)
当运行getStudent方法标记为SUPPORTS并且只读我正在获取
org.hibernate.HibernateException: No Session found for current thread …Run Code Online (Sandbox Code Playgroud) 当我在看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)
它工作正常.谁能告诉我为什么?
我想通过以下方式使用Spring安全性配置spring MVC应用程序.
我按以下方式配置它:
<security:http>
<security:form-login login-page="/security/login.html" login-processing-url="/login" authentication-failure-url="/login.jsp?login_error=1" default-target-url="/"/>
<security:session-management invalid-session-url="/security/sessionTimeout.html">
<security:concurrency-control max-sessions="1" />
</security:session-management>
<security:logout logout-url="/logout" logout-success-url="/"/>
</security:http>
Run Code Online (Sandbox Code Playgroud)
我有以下问题:
我遵循了Spring安全参考指南.我究竟做错了什么?
更新: 这是我的web.xml的样子.
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/springSecurity-servlet.xml</param-value>
</context-param>
<display-name>SpringSecurity</display-name>
<servlet>
<servlet-name>springSecurity</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springSecurity</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>springSecurity</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>springSecurity</servlet-name>
<url-pattern>/index.html</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
Run Code Online (Sandbox Code Playgroud)
更新2:只需在调试模式下运行log4j,这是我点击注销时得到的:
DEBUG [http-8080-2] (FilterChainProxy.java:375) - /index.html at position 1 of 11 …Run Code Online (Sandbox Code Playgroud) 我编写了非常简单的控制器,测试Servlet 3的功能:
@Autowired
ThreadPoolTaskExecutor taskExecutor;
@RequestMapping(value="{name}", method = RequestMethod.GET)
public @ResponseBody DeferredResult<MyResponse> getShopInJSON(@PathVariable String name) {
DeferredResult<MyResponse> df = new DeferredResult<MyResponse>();
taskExecutor.submit(new MyRunnable(df));
return df;
}
Run Code Online (Sandbox Code Playgroud)
在单独的线程中,我只做5秒的睡眠命令,之后我将MyResultPOJO 返回给DeferredResult.
我的web.xml文件符合Servlet 3规范:
<web-app 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_3_0.xsd"
version="3.0"
metadata-complete="true">
<display-name>Archetype Created Web Application</display-name>
<servlet>
<async-supported>true</async-supported>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)
我的连接器tomcat如下:
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="5"
acceptCount="5"
connectionTimeout="20000"
redirectPort="8443" />
Run Code Online (Sandbox Code Playgroud)
现在这是有趣的部分.当运行打开10个并发连接的简单程序时,我看到第一个集合被释放后,首先只提供5个连接,然后提供第二个5个连接(您可以从时间步进中看到它).这不是Servlet 3.0应该如何表现的
Fri May 31 01:17:57 IDT 2013: Preparing 10 concurrent connections
Fri May 31 …Run Code Online (Sandbox Code Playgroud)