gemire / full-hibernate-plugin-for-struts2 Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/full-hibernate-plugin-for-struts2
Automatically exported from code.google.com/p/full-hibernate-plugin-for-struts2
What steps will reproduce the problem?
1. Use the FHP
2. Use the @SkipValidation annotation with the mapped method
What is the expected output?
No validation by the FHP
What do you see instead?
The FHP still apply validation
Original issue reported on code.google.com by jyoshiriro
on 20 Jan 2010 at 2:26
If you try to deploy an application with *Java5* you will get the following
StackTrace:
java.lang.NoSuchMethodError: java/util/Properties.load(Ljava/io/Reader;)V
com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.createAndTestSessionFactory(HibernateSessionFactory.java:276)
com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:227)
com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getNewSession(HibernateSessionFactory.java:155)
com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getSession(HibernateSessionFactory.java:100)
com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.getHibernateSessionFromFactory(SessionTransactionInjectorInterceptor.java:369)
com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.injectHibernateCoreSessionByAnnotation(SessionTransactionInjectorInterceptor.java:444)
com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.injectHibernateCoreSessionByAnnotation(SessionTransactionInjectorInterceptor.java:460)
com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.intercept(SessionTransactionInjectorInterceptor.java:160)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.json.JSONInterceptor.intercept(JSONInterceptor.java:179)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
Original issue reported on code.google.com by jyoshiriro
on 1 Feb 2010 at 4:44
What steps will reproduce the problem?
1. Instantiate an object inside the action that contains an inner object i.e.:
public class TramiteActionGrid {
...
public BusquedaVecinoActuacion busquedaVecinoActuacion = new
BuscadorExpAction().new BusquedaVecinoActuacion();
}
2. The definition of the class that contains the inner classes is as follows:
public class BuscadorExpAction extends ActionGeneric {
//defines an inner object inside
public BuscadorExpAction.BusquedaGeneralActuacion busquedaGralActuacion = new
BuscadorExpAction.BusquedaGeneralActuacion();
....
//inner class definition
public class BusquedaGeneralActuacion extends ActionGeneric {
.....
}
//end of class definition
}
What is the expected output? What do you see instead?
The expected output is the plugin trying to inject the session/transaction
without errors, I see an stack overflow error instead in
"injectHibernateCoreSessionByAnnotation".
What version of the product are you using? On what operating system?
struts2-fullhibernatecore-plugin-2.2.2-GA.jar on Windows XP
Please provide any additional information below.
Probably related to issues 21 and 12, caused by the call to the recursive
function injectHibernateCoreSessionByAnnotation. The inner class has a
reference to the parent object, that has a reference to the inner class, that
has a reference to the parent object, that has a reference to the inner
class,...,etc. :-)
Original issue reported on code.google.com by [email protected]
on 11 Mar 2011 at 9:48
It would be nice to have validating groups support, as for now all the fields
of the action annotated as @Valida are being validated which sometimes bring to
performance issues.
I suggest to have a @Groups annotation with array of groups (action methods
will be optionally annotated), and in Struts2HibernateValidator while calling
validate method on Validator instance pass the groups to it. This will limit
validation to the validation group.
If required I can attach patches.
Original issue reported on code.google.com by [email protected]
on 4 Jun 2011 at 9:18
What steps will reproduce the problem?
1. import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.ami.bean.Tender;
import com.googlecode.s2hibernate.struts2.plugin.annotations.SessionTarget;
import com.googlecode.s2hibernate.struts2.plugin.annotations.TransactionTarget;
public class TenderDAOImpl implements TenderDAO{
@SessionTarget
Session session=null;
@TransactionTarget
Transaction transaction=null;
/**
* Used to save or update a user.
*/
@Override
public void saveUpdateTender(Tender tender) {
try {
/*System.out.println(t.getId()+t.getAttachment()+"getCdate"+t.getCdate()+"getEdate"+t.getEdate()+"getEmd()"+t.getEmd()+"getOdate()"+t.getOdate()+"getOrgname()"+t.getOrgname()+"getPredate()"+t.getPredate()+"getSdate()"+t.getSdate()+"getState()"+t.getState()+"getStatus"+t.getStatus()+"getTno"+t.getTno()+"getTrem"+t.getTrem()+"getTval"+t.getTval()+"getWdesc"+t.getWdesc()+"getTid"+t.getTid());*/
System.out.println("sdhj");
session.saveOrUpdate(tender);
} catch (Exception e) {
transaction.rollback();
e.printStackTrace();
}
}
}
2.
3.
What is the expected output? What do you see instead?
insert record into database but null pointer exception occured at
transaction.rollback(); line in above code
What version of the product are you using? On what operating system?
struts2.1.6,hibernate 3 and mysql-connector-java5.0.5 and window 7 homebasic
64bit
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 1 Mar 2013 at 2:53
If I try to use only XML configuration in a project, the
*com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory*
class throw an Exception.
So there is impossible to use this plugin in a Struts2/Hibernate project
without using Hibernate Annotations
Fixed with 2.1 GA
Original issue reported on code.google.com by jyoshiriro
on 20 Nov 2009 at 9:40
What steps will reproduce the problem?
1. Running the application fhpSample3
2.
3.
What is the expected output? What do you see instead?
Running application
What version of the product are you using? On what operating system?
Same
Please provide any additional information below.
Mapping of entities were missed out in hibernate.cfg.xml files. Add
following mappings..
<mapping class="sample3.model.Friend" />
<mapping class="sample3.model.Phonenumbertype" />
<mapping class="sample3.model.Friendphonenumber" />
Original issue reported on code.google.com by [email protected]
on 1 Aug 2009 at 7:27
Attachments:
First of all, thanks for the plug-in it really makes life easier :-)
What version of the product are you using? On what operating system?
I'm using 1.5 GA plugin version.
Please provide any additional information below.
The application throw an java.lang.StackOverflowError. Debbuging the app i
could see that the action class' annotated property is successfully
receiving a hibernate session object.
Since i am not extending 'hibernate-default' (i need a custom interceptor
stack instead) i think that, maybe, the problem is related to the
configuration in struts.xml.
My action class extends a class that have the Session property.
Here goes my struts.xml interceptors configuration section
<interceptors>
<interceptor name="login"
class="br.gov.trems.licitacao.controller.interceptor.LoginInterceptor" />
<interceptor name="hibernateSession"
class="com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransaction
InjectorInterceptor"
/>
<interceptor-stack name="custom">
<interceptor-ref name="exception">
<param name="logEnabled">true</param>
<param name="logLevel">debug</param>
<param name="logCategory">util.Logger</param>
</interceptor-ref>
<interceptor-ref name="alias"/>
<interceptor-ref name="params"/>
<interceptor-ref name="servletConfig"/>
<interceptor-ref name="prepare"/>
<interceptor-ref name="i18n"/>
<interceptor-ref name="chain"/>
<interceptor-ref name="modelDriven"/>
<interceptor-ref name="fileUpload" />
<interceptor-ref name="checkbox"/>
<interceptor-ref name="staticParams"/>
<interceptor-ref name="params"/>
<!--interceptor-ref name="conversionError"/-->
<interceptor-ref name="validation">
<param name="excludeMethods">input,back,cancel</param>
</interceptor-ref>
<interceptor-ref name="workflow">
<param name="excludeMethods">input,back,cancel</param>
</interceptor-ref>
<interceptor-ref name="hibernateSession" />
<!-- Custom security interceptor -->
<interceptor-ref name="login" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="custom" />
This is my action class source :
public class HomeAction extends BasicCrudAction {
private PageParams notificacoes;
private NotificacaoDAO notificacaoDAO;
private Usuario usuario;
private Notificacao notificacao;
public HomeAction() {
}
@Override
public String execute(){
notificacao.setUsuario(usuario);
notificacao.setLido(new Boolean(false));
notificacao.setData(null);
notificacaoDAO =
DAOFactory.getFactory().createNotificacaoDAO(hibernateSession);
lista = notificacaoDAO.list(notificacao, lista);
return SUCCESS;
}
}
The Session property belongs to BasicCrudAction, and the source code is the
following:
public abstract class BasicCrudAction extends ActionSupport implements
LoginAware, SessionAware, ModelDriven, Preparable {
private Map session;
protected PageParams lista = new PageParams();
@SessionTarget
protected Session hibernateSession;
public BasicCrudAction() {
}
public void setSession(Map session) {
this.session = session;
isReport();
}
public Session getHibernateSession() {
return hibernateSession;
}
public void setHibernateSession(Session hibernateSession) {
this.hibernateSession = hibernateSession;
}
}
And finally the error message:
exception
javax.servlet.ServletException: Filter execution threw an exception
org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
root cause
java.lang.StackOverflowError
java.util.LinkedHashMap$LinkedHashIterator.<init>(LinkedHashMap.java:345)
java.util.LinkedHashMap$LinkedHashIterator.<init>(LinkedHashMap.java:345)
java.util.LinkedHashMap$KeyIterator.<init>(LinkedHashMap.java:383)
java.util.LinkedHashMap$KeyIterator.<init>(LinkedHashMap.java:383)
java.util.LinkedHashMap.newKeyIterator(LinkedHashMap.java:396)
java.util.HashMap$KeySet.iterator(HashMap.java:874)
java.util.HashSet.iterator(HashSet.java:153)
com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.isCandidadeClass(SessionTransactionInjectorInterceptor.java:351)
com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.injectHibernateCoreSessionByAnnotation(SessionTransactionInjectorInterceptor.java:374)
This last line repeats over fifth times.
Thanks.
Original issue reported on code.google.com by [email protected]
on 15 Sep 2009 at 7:06
I was attempting to write a JUnit test for my DAO classes without having to run
tru struts 2. The ones I attempted to write failed because the session object
is NULL. Is it possible to write a Junit text with the plug-in? I havent seen
any examples for Junit test cases.
Please provide me with some guidance,
Thanks in advance.
Ronaldo.
Original issue reported on code.google.com by [email protected]
on 15 Sep 2010 at 1:12
Attachments:
Hello,
What steps will reproduce the problem?
1. If my model contains an enum, the
methoddetectAndCommitTransactionCreatedLater(...) fails with a
StackOverFlowException.
What version of the product are you using? On what operating system?
2.1 GA
Please provide any additional information below.
If i add to the method isCandidadeClass(Class testClass):
if (testClass.isEnum())
return false;
after (or before)
if (testClass.isAnnotation())
return false;
then it works...
Original issue reported on code.google.com by [email protected]
on 27 Nov 2009 at 8:45
In case of using Dao in validate process, the hibernate plugin doesn't inject
Session (and i think Transaction.
Here is a Sample to reproduce the problem:
UserDaoImpl:
-----------
public class UserDaoImpl implements UserDao {
@SessionTarget
Session session;
@TransactionTarget
Transaction transaction;
@Override
public User getUser(Long id) {
if (session==null) {
System.out.println("Session is null");
}
// TODO Auto-generated method stub
User user = null;
try {
Criteria criteria = session.createCriteria(User.class).add(
Restrictions.eq("id", id_id));
user = (User) criteria.uniqueResult();
} catch (Exception e) {
transaction.rollback();
e.printStackTrace();
}
return user;
}
-----
UserAction:
------
public class UserAction extends ActionSupport {
private UserDAO userDao = new UserDaoImpl();
private User user;
public String execute() {
return "success";
}
public void validate() {
clearFieldErrors();
user = userDao.getUser(1);
....
}
....
------------------
The Dao prints out "Session is null". NOTE: this is only sample code!
Original issue reported on code.google.com by [email protected]
on 14 Dec 2012 at 10:17
What steps will reproduce the problem?
1. creating singleton class ('RegistryContext') with static instance field
('private static RegistryContext instance;').
What is the expected output? What do you see instead?
injectHibernateCoreSessionByAnnotation recursion with stack overflow.
What version of the product are you using? On what operating system?
2.1.2 GA
Please provide any additional information below.
Overflow occurs because of the first field in my 'RegistryContext'
singleton object is a singleton instance reference i.e. reference to
itself.
You mentioned in 'issue 4'-reply that you would use an 'injection cash' in
version 2.1 and in sources of 'SessionTransactionInjectorInterceptor'
class I've found an 'injectionCacheMap' field, but it is never used in
forward code.
Original issue reported on code.google.com by [email protected]
on 17 Jan 2010 at 9:36
When I try to run the application I get this exception:
SEVERE: Exception starting filter struts2
java.lang.Error: Unresolved compilation problems:
The type javax.servlet.http.HttpServletRequest cannot be resolved. It is
indirectly referenced from required .class files
The method getRequest() from the type ServletActionContext refers to the
missing type HttpServletRequest
at
com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjecto
rInterceptor.<init>(SessionTransactionInjectorInterceptor.java:275)
Original issue reported on code.google.com by jyoshiriro
on 17 Dec 2009 at 3:11
What steps will reproduce the problem?
1. Do clean install of struts 2.2.2.
2. Install dependencies
3. Set hibernate.cfg.xml to connect to mysql database
4. Initialize
What is the expected output? What do you see instead?
Application fails on initialization. Stack trace:
2010-11-04 08:57:56,683 INFO org.hibernate.cfg.Configuration.configure:1518 -
configuring from resource: /hibernate.cfg.xml
2010-11-04 08:57:56,683 INFO
org.hibernate.cfg.Configuration.getConfigurationInputStream:1495 -
Configuration resource: /hibernate.cfg.xml
Could not build Full Hibernate Plugin's Session Factory
org.hibernate.MappingException: An AnnotationConfiguration instance is required
to use <mapping class="com.vaannila.domain.User"/>
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1692)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1647)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1626)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1600)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1520)
at com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.createAndTestSessionFactory(HibernateSessionFactory.java:267)
at com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:227)
at com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getNewSession(HibernateSessionFactory.java:155)
at com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getSession(HibernateSessionFactory.java:100)
at com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.getHibernateSessionFromFactory(SessionTransactionInjectorInterceptor.java:374)
at com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.injectHibernateCoreSessionByAnnotation(SessionTransactionInjectorInterceptor.java:449)
at com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.injectHibernateCoreSessionByAnnotation(SessionTransactionInjectorInterceptor.java:465)
at com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.intercept(SessionTransactionInjectorInterceptor.java:165)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
What version of the product are you using? On what operating system?
fullhibernatecore-plugin-2.2.1
Please provide any additional information below.
I'm trying to use annotations like SessionTarget and TransactionTarget, but it
appears to trying to use a session factory appropriate to xml files.
Original issue reported on code.google.com by [email protected]
on 4 Nov 2010 at 1:03
detect*CreatedLater methods are used inside inject() method like this:
{{{
detectAndCommitHibernateTransactionCreatedLater(action);
detectAndCloseHibernateCoreSessionCreatedLater(action);
}}}
These methods are defined in the following way:
{{{
private synchronized void
detectAndRollbackHibernateTransactionCreatedLater(Object targetObject)
throws Exception {
try {
if (readedObjectsByRequest.get(ServletActionContext.getRequest())
.contains(targetObject))
return;
readedObjectsByRequest.get(ServletActionContext.getRequest())
.add(targetObject);
-----------------------------------------
private synchronized void
detectAndCloseHibernateCoreSessionCreatedLater(Object targetObject)
throws SecurityException, NoSuchMethodException,
IllegalArgumentException, IllegalAccessException,
InvocationTargetException, ClassNotFoundException {
if (readedObjectsByRequest.get(ServletActionContext.getRequest())
.contains(targetObject))
return;
readedObjectsByRequest.get(ServletActionContext.getRequest())
.add(targetObject);
}}}
Thus, when both methods are called in a row the one that comes second has no
effect for it's target object was already stored in the readedObjectsByRequest
map by the first method.
What steps will reproduce the problem?
One way of reaching this code path is closing an injected session.
{{{
public class MyAction extends AcctionSupport {
@SessionTarget
Session session;
public String execute() {
session.close();
return SUCCESS;
}
}
}}}
What is the expected output? What do you see instead?
I don't know what is readedObjectsByRequest used for. So, I can't say :)
Original issue reported on code.google.com by [email protected]
on 5 Nov 2010 at 6:00
What steps will reproduce the problem?
1. Validation errors are not displayed on the screen
2. Tried both properties file message values and annotation based message
values both not getting displayed.
3. I followed all the steps as stated.
What is the expected output? What do you see instead?
Validation Error messages should appear on the jsp page.
What version of the product are you using? On what operating system?
Windows operating system, eclipse ide all versions of the jar file as stated.
Please provide any additional information below.
Domain object
-------------
package com.vaannila.domain;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.validator.NotEmpty;
@Entity
@Table(name = "USER")
public class User implements Serializable {
private static final long serialVersionUID = 6295524232169619097L;
private Long id;
@NotEmpty(message = "Name Required")
private String name;
private String password;
private String gender;
private String country;
private String aboutYou;
private Boolean mailingList;
@Id
@GeneratedValue
@Column(name = "USER_ID")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Column(name = "USER_NAME")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Column(name = "USER_PASSWORD")
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Column(name = "USER_GENDER")
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Column(name = "USER_COUNTRY")
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
@Column(name = "USER_ABOUT_YOU")
public String getAboutYou() {
return aboutYou;
}
public void setAboutYou(String aboutYou) {
this.aboutYou = aboutYou;
}
@Column(name = "USER_MAILING_LIST")
public Boolean getMailingList() {
return mailingList;
}
public void setMailingList(Boolean mailingList) {
this.mailingList = mailingList;
}
}
----------------------------------------------------
Action class
------------
package com.vaannila.web;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.validator.Valid;
import com.opensymphony.xwork2.ActionSupport;
import com.vaannila.dao.UserDAO;
import com.vaannila.dao.UserDAOImpl;
import com.vaannila.domain.User;
public class UserAction extends ActionSupport {
private static final long serialVersionUID = -6659925652584240539L;
@Valid
private User user;
private List<User> userList = new ArrayList<User>();
public String add()
{
UserDAO userDAO = new UserDAOImpl();
userDAO.saveUser(user);
return SUCCESS;
}
public String list()
{
UserDAO userDAO = new UserDAOImpl();
userList = userDAO.listUser();
return SUCCESS;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public List<User> getUserList() {
return userList;
}
public void setUserList(List<User> userList) {
this.userList = userList;
}
}
---------------------------------------------
UserAction.properties
---------------------
user.name=User Name
user.password=Password
user.gender=Gender
user.country=Country
user.aboutYou=About You
user.mailingList=Mailing List
-------------------------------------------
org.hibernate.validator.InvalidStateException: validation failed for:
com.vaannila.domain.User
at
org.hibernate.validator.event.ValidateEventListener.validate(ValidateEventListen
er.java:148)
at
org.hibernate.validator.event.ValidateEventListener.onPreInsert(ValidateEventLis
tener.java:172)
at
org.hibernate.action.EntityIdentityInsertAction.preInsert(EntityIdentityInsertAc
tion.java:142)
at
org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertActi
on.java:65)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
at
org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(Abstrac
tSaveEventListener.java:321)
at
org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventL
istener.java:204)
at
org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSa
veEventListener.java:130)
at
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequ
estedId(DefaultSaveOrUpdateEventListener.java:210)
at
org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(
DefaultSaveEventListener.java:56)
at
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(Defau
ltSaveOrUpdateEventListener.java:195)
at
org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSave
EventListener.java:50)
at
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultS
aveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:562)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:550)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:546)
at com.vaannila.dao.UserDAOImpl.saveUser(UserDAOImpl.java:40)
at com.vaannila.web.UserAction.add(UserAction.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvoca
tion.java:440)
at
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionIn
vocation.java:279)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:242)
at
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(Defau
ltWorkflowInterceptor.java:163)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilt
erInterceptor.java:87)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
at
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(Convers
ionErrorInterceptor.java:122)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
at
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(Parameters
Interceptor.java:195)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilt
erInterceptor.java:87)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
at
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(Static
ParametersInterceptor.java:148)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
at
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor
.java:93)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
at
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterce
ptor.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
at
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDriven
Interceptor.java:89)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
at
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(Scope
dModelDrivenInterceptor.java:128)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
at
org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(Profilin
gActivationInterceptor.java:104)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
at
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(Debuggin
gInterceptor.java:267)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
at
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterc
eptor.java:126)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
at
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.ja
va:148)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
at
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterc
eptor.java:138)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilt
erInterceptor.java:87)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
at
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigI
nterceptor.java:164)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
at
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.
java:128)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
at
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(Except
ionMappingInterceptor.java:176)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
at
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468)
at
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperatio
ns.java:77)
at
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(S
trutsPrepareAndExecuteFilter.java:76)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilt
erChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.
java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:2
33)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:1
91)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109
)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Pr
otocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Hibernate: select user0_.USER_ID as USER1_0_, user0_.USER_ABOUT_YOU as
USER2_0_, user0_.USER_COUNTRY as USER3_0_, user0_.USER_GENDER as USER4_0_,
user0_.USER_MAILING_LIST as USER5_0_, user0_.USER_NAME as USER6_0_,
user0_.USER_PASSWORD as USER7_0_ from USER user0_
-----------------------------
Kindly help me out.
Original issue reported on code.google.com by [email protected]
on 22 Aug 2009 at 2:06
What steps will reproduce the problem?
1. Configured property closeSessionMethod as "closeSession" struts.properties
and customSessionFactoryClass as "org.something.MySessionFactory"
2. Then creating the method closeSession with argument type
org.hibernate.Session
3. Then it throws NoSuchMethodException for closeSession
What is the expected output? What do you see instead?
It should work and the method should be called. But instead it throws
NoSuchMethodException, closeSession method is not found.
What version of the product are you using? On what operating system?
As per the plugin requirements and Windows XP
Please provide any additional information below.
When changing the signature of closeSession method to
org.hibernate.internal.SessionImpl rather than org.hibernate.Session, it starts
working. But the should not be dependent on the Concrete implementation.
Original issue reported on code.google.com by [email protected]
on 28 Nov 2012 at 10:59
What steps will reproduce the problem?
1. Mapping an Action by Convention without create the "execute()" method
What do you see?
NoSuchMethodException
Original issue reported on code.google.com by jyoshiriro
on 11 Nov 2010 at 9:40
What steps will reproduce the problem?
1. in struts.xml file let your package extend "hibernate-default"
2. add an action tag with an action class mapped.
3. add a result tag with type set to "stream"
What is the expected output? What do you see instead?
Expected:
Once a request for this action comes in the file is streamed back as
response with out any exceptions thrown.
Actual:
File streams correctly, but finally throws an exception on the server
console. java.lang.IllegalStateException.
I believe the hibernate plug-in is trying to write something to an already
committed output stream causing the exception.
What version of the product are you using? On what operating system?
struts2-fullhibernatecore-plugin-2.1.2-GA
struts-2.1.8.1
OS: Windows Vista SP2
Java: 1.6.0_16
Please provide any additional information below.
Easily replicable using the struts provided examples (showcase) for file
download.
Just change the extends attribute of the package tag from "struts-default"
to "hibernate-default".
Original issue reported on code.google.com by [email protected]
on 14 Jan 2010 at 1:29
Attachments:
What steps will reproduce the problem?
include a class like this in an action:
public class GCImpl implements GC
{
Logger logger = Logger.getLogger(this.getClass());
private Handler handler;
private GCImpl()
{
handler = new Handler();
new Thread(handler, "Handler").start();
}
private class Handler extends Thread
{
@Override
public void run()
{
while (true)
{
synchronized (this)
{
//do stuff;
try
{
wait(1000);
}
catch (Exception e)
{
logger.error("Exception thrown " + e.getMessage(), e);
}
}
}
}
}
}
What is the expected output? What do you see instead?
java.lang.StackOverflowError
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findResource(URLClassLoader.java:382)
java.lang.ClassLoader.getResource(ClassLoader.java:1003)
java.lang.ClassLoader.getResource(ClassLoader.java:998)
java.lang.ClassLoader.getSystemResource(ClassLoader.java:1101)
java.lang.Class.getResource(Class.java:2072)
com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.isCandidadeClass(SessionTransactionInjectorInterceptor.java:396)
com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.injectHibernateCoreSessionByAnnotation(SessionTransactionInjectorInterceptor.java:459)
........
What version of the product are you using? On what operating system?
2.2-GA
Please provide any additional information below.
I am using Spring's DI to inject this class into my action, but it doesn't
require a hibernate session to run so @SessionTarget is not set.
Original issue reported on code.google.com by ben%[email protected]
on 3 Sep 2010 at 9:24
What steps will reproduce the problem?
I am using the plugin, but it's leaving the connections open as unclosed.
Please find attached stacktrace.txt
What is the expected output? What do you see instead?
It should close the connections.
What version of the product are you using? On what operating system?
struts2-fullhibernatecore-plugin-2.2.1-GA.jar
OS: Oracle Enterprise Linux
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 12 Aug 2014 at 7:33
Attachments:
1. Configure a datasource in contxt.xml of your webapp:
<Resource auth="Container" driverClass="com.mysql.jdbc.Driver"
maxPoolSize="100" minPoolSize="1" acquireIncrement="1" name="jdbc/DB"
user="user" password="password"
factory="org.apache.naming.factory.BeanFactory"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
jdbcUrl="jdbc:mysql://localhost:3306/database?autoReconnect=true" />
2. Configure Hibernate to use THIS datasource in hibernate.cfg.xml
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.datasource">java:comp/env/jdbc/DB</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<mapping class="com.......Entity"/>
</session-factory>
</hibernate-configuration>
3. Create some action class with @SessionTarget field, configure it in
struts.xml (including Fullhibernate interceptor)
4. Run web app, invoke this action.
5. Enjoy console output and Hibernate crash:
DEBUG [http-8080-4] (SessionTransactionInjectorInterceptor.java:151) -
Preparing Injection Hibernate Session and Transaction process:
/management/news/fetch-news - Method:
com.fabware.nab.action.NewsListAction.execute()
DEBUG [http-8080-4] (HibernateSessionFactory.java:297) - Full Hibernate
Plugin's Session Factory: destroy factory required...
DEBUG [http-8080-4] (HibernateSessionFactory.java:304) - Full Hibernate
Plugin's Session Factory: C3P0 Datasources Destroyed sucessful
DEBUG [http-8080-4] (HibernateSessionFactory.java:308) - Full Hibernate
Plugin's Session Factory: All SessionFactories Destroyed sucessful
DEBUG [http-8080-4] (HibernateSessionFactory.java:91) - Hibernate Session
Required (from current Thread) - SessionFactory required: (default)
DEBUG [http-8080-4] (HibernateSessionFactory.java:98) - No Hibernate Session in
current thread. New Hibernate Session will be created and returned
(SessionFactory "(default)")
DEBUG [http-8080-4] (HibernateSessionFactory.java:153) - New Hibernate Session
required - SessionFactory required: (default)
DEBUG [http-8080-4] (HibernateSessionFactory.java:217) - Full Hibernate
Plugin's Session Factory build started...
DEBUG [http-8080-4] (HibernateSessionFactory.java:262) - Full Hibernate
Plugin's Session Factory using Hibernate Annotation Configuration
DEBUG [http-8080-4] (HibernateSessionFactory.java:268) - Full Hibernate
Plugin's Session Factory configuration file "/hibernate.cfg.xml" configured
WARN [http-8080-4] (SettingsFactory.java:147) - Could not obtain connection to query metadata
java.sql.SQLException: com.mchange.v2.c3p0.ComboPooledDataSource [
java.beans.IntrospectionException: java.lang.reflect.InvocationTargetException
[lastAcquisitionFailureDefaultUser] ] has been closed() -- you can no longer
use it.
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.assertCpds(AbstractPoolBackedDataSource.java:447)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getPoolManager(AbstractPoolBackedDataSource.java:459)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:92)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:114)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2833)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2829)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1840)
at com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.createAndTestSessionFactory(HibernateSessionFactory.java:282)
at com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:227)
at com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getNewSession(HibernateSessionFactory.java:155)
at com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getSession(HibernateSessionFactory.java:100)
at com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.getHibernateSessionFromFactory(SessionTransactionInjectorInterceptor.java:379)
at com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.injectHibernateCoreSessionByAnnotation(SessionTransactionInjectorInterceptor.java:454)
at com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.intercept(SessionTransactionInjectorInterceptor.java:165)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
at org.apache.struts2.components.ActionComponent.executeAction(ActionComponent.java:291)
at org.apache.struts2.components.ActionComponent.end(ActionComponent.java:173)
at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
at org.apache.jsp.pages.frame_002dmanage_002dnews_jsp._jspx_meth_s_005faction_005f0(frame_002dmanage_002dnews_jsp.java:726)
at org.apache.jsp.pages.frame_002dmanage_002dnews_jsp._jspService(frame_002dmanage_002dnews_jsp.java:175)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
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.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:159)
at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:373)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
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:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:558)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
at java.lang.Thread.run(Thread.java:662)
The datasource, configured in context.xml as JNDI resource is NOT INTENDED to
be destroyed by some web application on it's start. It should REMAIN UNTOUCHED.
Original issue reported on code.google.com by [email protected]
on 27 Jan 2011 at 3:52
The page
https://code.google.com/p/full-hibernate-plugin-for-struts2/wiki/Hibernate_Valid
ator_integration which is called in
https://code.google.com/p/full-hibernate-plugin-for-struts2/wiki/3_Hibernate_Cor
e_Sessions_Transactions_injecton isn't in the wiki.
Original issue reported on code.google.com by [email protected]
on 13 Nov 2014 at 3:50
What steps will reproduce the problem?
1. Configure the C3P0 connection pool in Hibernate
2. Try to get some data from the database
3. Add hibernate-plugin, get some additional data from the database in new
struts2 action. Try to get the data from the second point above.
What is the expected output? What do you see instead?
I expected to get the result from the database.
Hibernate pooling is closed. I got an error:
com.mchange.v2.c3p0.PoolBackedDataSource.....has been closed() -- you can no
longer use it
What version of the product are you using? On what operating system?
struts2-fullhibernatecore-plugin-2.2.1-GA.
Please provide any additional information below.
I put the error on my blog http://javanus.com/blog/?p=233
Regards,
Javanus
Original issue reported on code.google.com by [email protected]
on 27 Sep 2010 at 7:29
This project could have a Maven Repository
Original issue reported on code.google.com by jyoshiriro
on 24 Jan 2010 at 2:21
What steps will reproduce the problem?
1. Setting the hibernatePlugin.useSessionObjectInCloseSessionMethod using the
struts.properties file
2. But all String properties are successfully set using the properties file,
only the two boolean properties i.e. useSessionObjectInCloseSessionMethod and
searchInsideJars are not set due to some reason
What is the expected output? What do you see instead?
The value if set as true in the properties file should be reflected as true,
but it is not set.
What version of the product are you using? On what operating system?
As per plugin dependencies and Windows 7 operating system
Please provide any additional information below.
ADDITIONAL INFO :Even tried to debug for the same but same result the setter
method is not hit for these two properties.
POSSIBLE REASON: The injection is not working for these two properties maybe
due to the boolean data type, also all the other properties are String type.
Original issue reported on code.google.com by [email protected]
on 28 Nov 2012 at 9:55
Attachments:
here is my maven port of this project.
It works well with the modul struts2-jquery-grid-showcase of the latest
com.jgeppert.struts2.jquery:struts2-jquery-plugin:3.2.1-SNAPSHOT.
It might be a little help for someone.
--
bye Udo
Original issue reported on code.google.com by [email protected]
on 17 Nov 2011 at 10:47
Attachments:
validate() method is invoked before FHP validation. Should be invoked after
instead.
Original issue reported on code.google.com by jyoshiriro
on 20 Jan 2010 at 2:52
Hello,
What version of the product are you using? On what operating system?
2.1 GA
Request:
Support for Hibernate Validation 4.x (implementing JSR 303)
Regards,
Original issue reported on code.google.com by [email protected]
on 1 Dec 2009 at 2:05
S2hibernate plugin is incompatible with latest hibernate validator 4
I get the following error:
java.lang.ClassNotFoundException:
org.hibernate.validator.InvalidStateException
This is because this exception is now deprecated i believe.
You can see it in the javadocs for version 3:
http://docs.jboss.org/hibernate/validator/3.x/api/index.html?
org/hibernate/validator/InvalidStateException.html
But in the latest version of hibernate it isn't there:
http://docs.jboss.org/hibernate/stable/validator/api/index.html?
org/hibernate/validator/package-summary.html
Please help, thanks.
Original issue reported on code.google.com by [email protected]
on 7 Jan 2010 at 12:43
What steps will reproduce the problem?
1. public class TypeListAction extends ActionSupport
2. @SessionTarget private org.hibernate.Session hSession;
3. run this action.
What is the expected output? What do you see instead?
log shows:
Action class "com.opensymphony.xwork2.ActionSupport" from mapping "/typeList"
does not extends "com.opensymphony.xwork2.ActionSupport". Hibernate Session and
Transaction will not be injected!
What version of the product are you using? On what operating system?
2.2.2GA
Please provide any additional information below.
do not know why it is class "com.opensymphony.xwork2.ActionSupport", should be
TypeListAction.
Original issue reported on code.google.com by [email protected]
on 16 Feb 2012 at 5:12
Hello,
I have a project which I am using Hibernate and Struts2 together, and I am new
to both of them.
I am having trouble working out the CRUD process with the Hibernate and Struts2
combinations. I want to do this in a specific way, but am having trouble. To
replicate the issue I am having outside of my main project I downloaded the WAR
from this tutorial and successfully got it running:
http://struts.apache.org/2.x/docs/crud-demo-i.html
Then I introduced Hibernate to it by making the following changes:
1) First I added the JARs from my real project to this one to make sure I was running all the same versions of everything. The key points are I am suing Hibernate 3, Struts2, and the FullHibernateCore plugin to link them. For more detail, here are the JARs I am using:
antlr-2.7.7.jar
commons-collections-3.2.1.jar
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang-2.5.jar
commons-logging-1.1.1.jar
commons-logging-api-1.1.jar
dom4j-1.6.1.jar
freemarker-2.3.18.jar
hibernate3.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
hibernate-testing.jar
hibernate-validator.jar
javassist-3.15.0-GA.jar
jboss-logging-3.1.0.CR2.jar
jboss-transaction-api_1.1_spec-1.0.0.Final.jar
jta-1.1.jar
log4j-1.2.15.jar
mysql-connector-java-5.1.18-bin.jar
ognl-3.0.4.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar
struts2-core-2.3.1.2.jar
struts2-fullhibernatecore-plugin-2.2.2-GA.jar
xwork-core-2.3.1.2.jar
2) Added hibernate.cfg.xml as follows:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<!-- a SessionFactory instance listed as /jndi/name -->
<session-factory>
<!-- DB Connection Settings -->
<property name="connection.url">jdbc:mysql://localhost:3306</property>
<property name="connection.username">root</property>
<property name="connection.password"></property>
<property name="hibernate.default_schema">test2</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- DB Dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Echo SQL -->
<property name="show_sql">true</property>
<!-- Model Mappings -->
<mapping class="com.aurifa.struts2.tutorial.model.Employee"/>
<mapping class="com.aurifa.struts2.tutorial.model.Department"/>
</session-factory>
</hibernate-configuration>
3) Updated com.aurifa.struts2.tutorial.model.Department & com.aurifa.struts2.tutorial.model.Employee with persistence annotation.
4) Created com.rwblackburn.struts2.tutorial.dao.InitHibernate, and executed it to create initial DB and populate it with the same data as demo:
package com.rwblackburn.struts2.tutorial.dao;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import com.aurifa.struts2.tutorial.model.Department;
import com.aurifa.struts2.tutorial.model.Employee;
public class InitHibernate {
/**
* @param args
*/
public static void main(String[] args) {
AnnotationConfiguration config = new AnnotationConfiguration();
config.addAnnotatedClass( Employee.class );
config.addAnnotatedClass( Department.class );
config.configure("hibernate.cfg.xml");
// Create annotated class tables
new SchemaExport(config).create(true, true);
// Need to be careful with this, move it to a Struts global plugin?
SessionFactory factory = config.buildSessionFactory();
Session session = factory.openSession();
session.beginTransaction();
session.beginTransaction();
// Create Departments
Department dptAccounting = new Department( new Integer(100), "Accounting" );
Department dptRandD = new Department( new Integer(200), "R & D");
Department dptSales = new Department( new Integer(300), "Sales" );
session.save(dptAccounting);
session.save(dptRandD);
session.save(dptSales);
// Create Employees
session.save(new Employee(new Integer(1), "John", "Doe", new Integer(36), dptAccounting));
session.save(new Employee(new Integer(2), "Bob", "Smith", new Integer(25), dptSales));
session.getTransaction().commit();
}
}
5) Created com.rwblackburn.struts2.tutorial.dao.EmployeeHibernateDao which implements EmployeeDao
package com.rwblackburn.struts2.tutorial.dao;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.aurifa.struts2.tutorial.dao.EmployeeDao;
import com.aurifa.struts2.tutorial.model.Employee;
import com.googlecode.s2hibernate.struts2.plugin.annotations.SessionTarget;
import com.googlecode.s2hibernate.struts2.plugin.annotations.TransactionTarget;
public class EmployeeHibernateDao implements EmployeeDao {
@SessionTarget
protected Session session;
@TransactionTarget
protected Transaction transaction;
@SuppressWarnings("rawtypes")
@Override
public List getAllEmployees() {
return session.createQuery( "from Employee" ).list();
}
@Override
public Employee getEmployee(Integer id) {
Employee emp = new Employee();
session.load(emp, id );
return emp;
}
@Override
public void update(Employee emp) {
session.update(emp);
}
@Override
public void insert(Employee emp) {
session.save(emp);
}
@Override
public void delete(Integer id) {
Employee emp = new Employee();
session.load(emp, id );
session.delete(emp);
}
}
6) Created com.rwblackburn.struts2.tutorial.dao.DepartmentHibernateDao which implements DepartmentDao
package com.rwblackburn.struts2.tutorial.dao;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.aurifa.struts2.tutorial.dao.DepartmentDao;
import com.aurifa.struts2.tutorial.model.Department;
import com.googlecode.s2hibernate.struts2.plugin.annotations.SessionTarget;
import com.googlecode.s2hibernate.struts2.plugin.annotations.TransactionTarget;
public class DepartmentHibernateDao implements DepartmentDao {
@SessionTarget
protected Session session;
@TransactionTarget
protected Transaction transaction;
@SuppressWarnings("rawtypes")
@Override
public List getAllDepartments() {
return session.createQuery( "from Department" ).list();
}
@SuppressWarnings("rawtypes")
@Override
public Map getDepartmentsMap() {
Map<Integer, Department> departmentsMap = new HashMap<Integer, Department>();
Iterator iter = this.getAllDepartments().iterator();
while( iter.hasNext() ) {
Department dept = (Department)iter.next();
departmentsMap.put(dept.getDepartmentId(), dept );
}
return departmentsMap;
}
}
7) Updated EmployeeDaoService & DepartmentDaoService to use the new hibernate DAOs instead of the "NoDB" version from the demo
Now, InitHibernate runs just fine, so I know at least that much works and the
DB itself is fine. However, when I try to load up the project in a browser the
index.action page gives this error:
java.lang.NullPointerException
com.rwblackburn.struts2.tutorial.dao.DepartmentHibernateDao.getAllDepartments(DepartmentHibernateDao.java:26)
com.aurifa.struts2.tutorial.service.DepartmentDaoService.getAllDepartments(DepartmentDaoService.java:16)
com.aurifa.struts2.tutorial.action.EmployeeAction.prepare(EmployeeAction.java:35)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:167)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:510)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
java.lang.Thread.run(Thread.java:722)
When I do a debug trace I can confirm that the Session and Transaction
variables in DepartmentHibernateDao are in fact null.
After doing a lot of searching around I found this thread:
http://stackoverflow.com/questions/6294764/struts2-full-hibernate-plugin-session
-is-closed
This seems to be the same issue I was having. However, even if I downgrade by
Struts version to 2.1.6, I still have the problem, Here is my new libraries:
antlr-2.7.2.jar
commons-collections-3.2.jar
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-lang-2.3.jar
commons-logging-1.0.4.jar
commons-logging-api-1.1.jar
commons-validator-1.3.1.jar
dom4j-1.6.1.jar
freemarker-2.3.13.jar
hibernate3.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
hibernate-testing.jar
hibernate-validator.jar
javassist-3.15.0-GA.jar
jboss-logging-3.1.0.CR2.jar
jboss-transaction-api_1.1_spec-1.0.0.Final.jar
jta-1.1.jar
log4j-1.2.15.jar
mysql-connector-java-5.1.18-bin.jar
ognl-2.6.11.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar
struts2-core-2.1.6.jar
struts2-fullhibernatecore-plugin-2.2.2-GA.jar
xwork-2.1.2.jar
Also also implemented the quasi-fix listed in that thread by adding a “if
(session == null)” check before some of the hibernate session calls. For
example:
@SuppressWarnings("rawtypes")
@Override
public List getAllDepartments() {
if (session == null) {
System.out.println("****** CREATING SESSION ******");
session = com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getNewSession();
if (!session.isOpen()) {
throw new NullPointerException("Fix the code: session's not here");
}
transaction = session.beginTransaction();
}
if(!session.isOpen()) {
System.out.println("****** REOPENING SESSION ******");
session = session.getSessionFactory().openSession();
//session = com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getNewSession();
transaction = session.beginTransaction();
}
return session.createQuery( "from Department" ).list();
}
The second if I add to avoid a “org.hibernate.SessionException: Session is
closed!” based on this thread:
https://forum.hibernate.org/viewtopic.php?f=1&t=983523&view=previous
This gets me passed the “java.lang.NullPointerException” and
“org.hibernate.SessionException: Session is closed!” some of the times but
this is inconsistent, if I keep refreshing the page it eventually comes back.
Here is the stack trace for this new issue (you can see some of my print lines
fomr the method above):
[DEBUG] com.opensymphony.xwork2.config.ConfigurationManager.debug:57 - Checking ConfigurationProviders for reload.
[DEBUG] com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler.debug:57 - Entering nullPropertyValue [target=[com.opensymphony.xwork2.DefaultTextProvider@29e03842], property=struts]
[WARN ] com.opensymphony.xwork2.ognl.OgnlValueStack.warn:45 - Could not find property [struts.actionMapping]
[DEBUG] com.opensymphony.xwork2.config.ConfigurationManager.debug:57 - Checking ConfigurationProviders for reload.
[DEBUG] com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler.debug:57 - Entering nullPropertyValue [target=[com.opensymphony.xwork2.DefaultTextProvider@29e03842], property=struts]
[WARN ] com.opensymphony.xwork2.ognl.OgnlValueStack.warn:45 - Could not find property [struts.valueStack]
[DEBUG] com.opensymphony.xwork2.config.ConfigurationManager.debug:57 - Checking ConfigurationProviders for reload.
[DEBUG] com.opensymphony.xwork2.DefaultActionProxy.debug:57 - Creating an DefaultActionProxy for namespace / and action name crud
[DEBUG] com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil.debug:57 - cannot find method [prepareSave] in action [com.aurifa.struts2.tutorial.action.EmployeeAction@4e8659a]
[DEBUG] com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil.debug:57 - cannot find method [prepareDoSave] in action [com.aurifa.struts2.tutorial.action.EmployeeAction@4e8659a]
****** REOPENING SESSION ******
Hibernate: select department0_.departmentId as departme1_1_, department0_.name as name1_ from test2.Department department0_
****** REOPENING SESSION ******
Hibernate: select employee0_.employeeId as employeeId0_1_, employee0_.age as age0_1_, employee0_.departmentId as departme5_0_1_, employee0_.firstName as firstName0_1_, employee0_.lastName as lastName0_1_, department1_.departmentId as departme1_1_0_, department1_.name as name1_0_ from test2.Employee employee0_ left outer join test2.Department department1_ on employee0_.departmentId=department1_.departmentId where employee0_.employeeId=?
[DEBUG] com.opensymphony.xwork2.interceptor.I18nInterceptor.debug:57 - intercept '//crud' {
[DEBUG] com.opensymphony.xwork2.interceptor.I18nInterceptor.debug:57 - before Locale=en_US
[DEBUG] com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler.debug:57 - Entering nullPropertyValue [target=[com.aurifa.struts2.tutorial.action.EmployeeAction@4e8659a, com.opensymphony.xwork2.DefaultTextProvider@29e03842], property=struts]
[WARN ] com.opensymphony.xwork2.ognl.OgnlValueStack.warn:45 - Could not find property [struts]
[DEBUG] org.apache.struts2.interceptor.FileUploadInterceptor.debug:57 - Bypassing //crud
[DEBUG] com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.debug:57 - Setting static parameters {}
[DEBUG] com.opensymphony.xwork2.interceptor.ParametersInterceptor.debug:57 - Setting params employee.age => [ 4 ] employee.department.departmentId => [ 1 ] employee.employeeId => [ 9 ] employee.firstName => [ dsadsa ] employee.lastName => [ dsads ]
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: age
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.model.Employee
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - field-level type converter for property [age] = none found
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: employee.age
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.action.EmployeeAction
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - global-level type converter for property [age] = none found
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - falling back to default type converter [com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter@62f3782]
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: departmentId
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.model.Department
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - field-level type converter for property [departmentId] = none found
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: employee.department.departmentId
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.model.Employee
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - global-level type converter for property [departmentId] = none found
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - falling back to default type converter [com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter@62f3782]
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: employeeId
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.model.Employee
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - field-level type converter for property [employeeId] = none found
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: employee.employeeId
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.action.EmployeeAction
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - global-level type converter for property [employeeId] = none found
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - falling back to default type converter [com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter@62f3782]
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: firstName
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.model.Employee
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - field-level type converter for property [firstName] = none found
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: employee.firstName
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.action.EmployeeAction
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - global-level type converter for property [firstName] = none found
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - falling back to default type converter [com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter@62f3782]
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: lastName
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.model.Employee
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - field-level type converter for property [lastName] = none found
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: employee.lastName
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.action.EmployeeAction
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - global-level type converter for property [lastName] = none found
[DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - falling back to default type converter [com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter@62f3782]
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.intercept:151 - Preparing Injection Hibernate Session and Transaction process: /crud - Method: com.aurifa.struts2.tutorial.action.EmployeeAction.save()
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getSession:91 - Hibernate Session Required (from current Thread) - SessionFactory required: (default)
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getSession:98 - No Hibernate Session in current thread. New Hibernate Session will be created and returned (SessionFactory "(default)")
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getNewSession:153 - New Hibernate Session required - SessionFactory required: (default)
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getNewSession:167 - New Hibernate Session created and returned (SessionFactory "")
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.getHibernateSessionFromFactory:380 - Hibernate Session from Full Hibernate Plugin's Hibernate Session Factory
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.debugInfoSessionInjectedByAnnotation:508 - Hibernate Session injected (by annotation) into Action. Field "session". Class "com.rwblackburn.struts2.tutorial.dao.EmployeeHibernateDao"
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getSession:91 - Hibernate Session Required (from current Thread) - SessionFactory required: (default)
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getSession:125 - Existing Hibernate Session from current thread returned (SessionFactory "")
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.getHibernateSessionFromFactory:380 - Hibernate Session from Full Hibernate Plugin's Hibernate Session Factory
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.debugInfoSessionInjectedByAnnotation:508 - Hibernate Session injected (by annotation) into Action. Field "session". Class "com.rwblackburn.struts2.tutorial.dao.DepartmentHibernateDao"
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.debugInfoTransactionInjectedByAnnotation:599 - Hibernate Transaction injected (by annotation) into Action. Field "transaction". Class "com.rwblackburn.struts2.tutorial.dao.EmployeeHibernateDao"
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.debugInfoTransactionInjectedByAnnotation:599 - Hibernate Transaction injected (by annotation) into Action. Field "transaction". Class "com.rwblackburn.struts2.tutorial.dao.DepartmentHibernateDao"
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.intercept:77 - Full Hibernate Plugin Validation in class com.aurifa.struts2.tutorial.action.EmployeeAction
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.intercept:116 - Full Hibernate Plugin Validation found no erros.
[DEBUG] com.opensymphony.xwork2.DefaultActionInvocation.debug:57 - Executing action method = input
[DEBUG] org.apache.struts2.dispatcher.ServletRedirectResult.debug:57 - Redirecting to finalLocation /test2/index.action
Hibernate: update test2.Employee set age=?, departmentId=?, firstName=?, lastName=? where employeeId=?
[DEBUG] com.opensymphony.xwork2.config.ConfigurationManager.debug:57 - Checking ConfigurationProviders for reload.
[DEBUG] com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler.debug:57 - Entering nullPropertyValue [target=[com.opensymphony.xwork2.DefaultTextProvider@29e03842], property=struts]
[WARN ] com.opensymphony.xwork2.ognl.OgnlValueStack.warn:45 - Could not find property [struts.actionMapping]
[DEBUG] com.opensymphony.xwork2.config.ConfigurationManager.debug:57 - Checking ConfigurationProviders for reload.
[DEBUG] com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler.debug:57 - Entering nullPropertyValue [target=[com.opensymphony.xwork2.DefaultTextProvider@29e03842], property=struts]
[WARN ] com.opensymphony.xwork2.ognl.OgnlValueStack.warn:45 - Could not find property [struts.valueStack]
[DEBUG] com.opensymphony.xwork2.config.ConfigurationManager.debug:57 - Checking ConfigurationProviders for reload.
[DEBUG] com.opensymphony.xwork2.DefaultActionProxy.debug:57 - Creating an DefaultActionProxy for namespace / and action name index
[DEBUG] com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil.debug:57 - cannot find method [prepareList] in action [com.aurifa.struts2.tutorial.action.EmployeeAction@7a23792b]
[DEBUG] com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil.debug:57 - cannot find method [prepareDoList] in action [com.aurifa.struts2.tutorial.action.EmployeeAction@7a23792b]
Hibernate: select department0_.departmentId as departme1_1_, department0_.name as name1_ from test2.Department department0_
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.commitHibernateTransaction:264 - Hibernate Transation org.hibernate.transaction.JDBCTransaction@54ebb9ba rolledback by Full Hibernate Plugin
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.closeSession:207 - Hibernate Session closed
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.closeHibernateSession:275 - Hibernate Session closed by Full Hibernate Plugin's Hibernate Session Factory
[DEBUG] com.opensymphony.xwork2.config.ConfigurationManager.debug:57 - Checking ConfigurationProviders for reload.
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.intercept:219 - Hibernate Transaction Committed
[DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.intercept:238 - Injection Hibernate Session and Transaction process for /crud - Method: com.aurifa.struts2.tutorial.action.EmployeeAction.save() finished
[DEBUG] com.opensymphony.xwork2.interceptor.I18nInterceptor.debug:57 - after Locale=en_US
[DEBUG] com.opensymphony.xwork2.interceptor.I18nInterceptor.debug:57 - intercept }
I am probably just missing the above session checking in one of my methods
which uses the session. However at this point it seems that this can not
possible be the answer, and I am either doing somthing very wrong or there is
something missing somewhere.
Attached is the WAR file of this test app (using Struts 2.1.6). Any help will
be appreciated.
Thank You
Original issue reported on code.google.com by [email protected]
on 11 Mar 2012 at 5:44
1. Create web application
2. Append jars: Struts 2, Hibernate required dependencies and
hibernate-jpa-api.jar
3. Append Struts2-fullhibernate plugin
4. Deploy your webapp
5. Enjoy the application startup failure with following console output:
16:41:16 - INFO: Full Hibernate Plugin Validation could not detect Hibernate
Validator 4.x
28.12.2010 16:41:16 org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter Struts2
java.lang.ExceptionInInitializerError
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:119)
at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:150)
at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:139)
at org.apache.struts2.impl.StrutsObjectFactory.buildInterceptor(StrutsObjectFactory.java:52)
at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:59)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:987)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStack(XmlConfigurationProvider.java:806)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStacks(XmlConfigurationProvider.java:819)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptors(XmlConfigurationProvider.java:842)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:449)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:264)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:193)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:374)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:418)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3838)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4488)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.RuntimeException: No Hibernate Validator class found
(neither 3.x nor 4.x)
at com.googlecode.s2hibernate.struts2.plugin.s2hibernatevalidator.interceptor.HibernateValidatorInterceptor.configValidator(HibernateValidatorInterceptor.java:51)
at com.googlecode.s2hibernate.struts2.plugin.s2hibernatevalidator.interceptor.HibernateValidatorInterceptor.<clinit>(HibernateValidatorInterceptor.java:24)
... 42 more
This happens with fullhibernate v. 2.2 & 2.2.2
WebApp should start successfully independently of presence of
Hibernate-Validation.jar in classpath.
Original issue reported on code.google.com by [email protected]
on 28 Dec 2010 at 1:53
What steps will reproduce the problem?
1. Create and mapping an Action without a object marked with @TransactionTarget
What do you see?
The transaction is not commited.
Original issue reported on code.google.com by jyoshiriro
on 11 Nov 2010 at 9:42
What steps will reproduce the problem?
1. Use the plugin
2. Create more than one ValidatorMessages_loc.properties
3. Use Hibernate Validator 3.1.0 Annotations
What is the expected output?
Validations messagens according the client Locale
What do you see instead?
Only "ValidatorMessages.properties" is read.
Original issue reported on code.google.com by jyoshiriro
on 8 Mar 2010 at 3:27
Some Hibernate relationships can catch a StackOverflow Exception. ie. reflexive
relationships
Original issue reported on code.google.com by jyoshiriro
on 9 Jul 2010 at 2:54
Verion: 2.2 GA
If I use hibernatePlugin.closeSessionAfterInvoke=false I get:
java.lang.NullPointerException at
com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjecto
rInterceptor.closeHibernateSession(SessionTransactionInjectorInterceptor.java:28
6)
at line 286:
SessionInfo info = new SessionInfo(hibernateSession,new
Date(),request.getSession());
request is null.
Original issue reported on code.google.com by [email protected]
on 22 Mar 2010 at 3:40
What steps will reproduce the problem?
Try to use the FHP without the Hibernate Validator.
What is the expected output?
Use the other FHP features but not the Hibernate Validator validation with
no problem.
What do you see instead?
An Exception is throwed. So, the Hibernate Validator library is always
required.
Original issue reported on code.google.com by jyoshiriro
on 20 Jan 2010 at 2:20
What steps will reproduce the problem?
1. Use a entity class object for input params from a from (ie. "user.login")
2. Use the same object to get the "full" entity
3. Use the same objet to render data into the result JSP
What do you see?
An org.hibernate.validator.InvalidStateException and no JSP rendered
Affects: 2.2 GA
Original issue reported on code.google.com by jyoshiriro
on 24 Jun 2010 at 12:15
Hi, I'm trying to implement a singleton DAO object within hibernate and struts2
by using your plugin. Looking through some examples, i think your plugin use
setter method and java reflection to do injection. i'm wondering is it
thread-safe? Since in a webapplication(typically, multithreaded), each setter
method will modify my DAO singleton's session object. Plz, help answering my
questions. thx
Original issue reported on code.google.com by [email protected]
on 15 Mar 2012 at 9:12
validate() method from Actions not invoked if using any Interceptor Stack
from Full Hibernate Plugin.
Fixed with 2.1 GA.
Original issue reported on code.google.com by jyoshiriro
on 20 Nov 2009 at 9:28
The most recent version of hibernate-validator does not contain the class
org.hibernate.validator.engine.ResourceBundleMessageInterpolator anymore, so an
Exception is thrown.
using an older hibernate-validator 4.0.2 solves the problem.
Stacktrace:
java.lang.NoClassDefFoundError:
org/hibernate/validator/engine/ResourceBundleMessageInterpolator
com.googlecode.s2hibernate.struts2.plugin.s2hibernatevalidator.validators.Struts2HibernateValidatorV402.validate(Struts2HibernateValidatorV402.java:48)
com.googlecode.s2hibernate.struts2.plugin.s2hibernatevalidator.validators.Struts2HibernateValidatorV402.validate(Struts2HibernateValidatorV402.java:1)
com.googlecode.s2hibernate.struts2.plugin.s2hibernatevalidator.interceptor.HibernateValidatorInterceptor.intercept(HibernateValidatorInterceptor.java:83)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.intercept(SessionTransactionInjectorInterceptor.java:211)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
regards,
markus
Original issue reported on code.google.com by [email protected]
on 25 Feb 2011 at 2:52
[deleted issue]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.