You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by bavon mike <ba...@gmail.com> on 2015/03/02 07:32:17 UTC

How do configure struts convention plugin with struts-spring plugin with Action class mapped with annotations

I am trying to configure spring plugin with strut 2 application, which is
already running with convention plugin, so am using annotations. Am using
ExtJs for my form submission which was initially working well until i
introduced the spring plugin, now the the ajax request cannot locate the
actions and its even not showing any response in firebug. I have tried
searching the net, but i cant find solution of how to successfully
configure strut2 convention plugin using annotation with struts-spring
plugin. Currently this is what i have

*pom.xml*

<!-- struts 2 dependencies -->
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>${struts2.version}</version>
</dependency>

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-convention-plugin</artifactId>
    <version>${struts2.version}</version>
</dependency>

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-json-plugin</artifactId>
    <version>${struts2.version}</version>
</dependency>

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-spring-plugin</artifactId>
    <version>${struts2.version}</version>
</dependency>

<!-- Import the CDI API -->
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-cdi-plugin</artifactId>
    <version>${struts2.version}</version>
</dependency>
<dependency>
<groupId>javax.enterprise</groupId>
    <artifactId>cdi-api</artifactId>
    <version>1.0-SP1</version><!--$NO-MVN-MAN-VER$-->
    <scope>provided</scope>
</dependency>

<!-- Spring framework -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>${spring.version}</version>
</dependency>

*struts.xml*

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <constant name="struts.custom.i18n.resources"
value="ApplicationResources" />
    <constant name="struts.devMode" value="true" />
    <constant name="struts.convention.result.path" value="/content" />
    <constant name="struts.multipart.saveDir" value="/tmp" />
    <constant name="struts.multipart.maxSize" value="4194304" />
    <constant name="struts.action.excludePattern" value="/api/.*?" />

</struts>

*web.xml*

<display-name>Application</display-name>
<welcome-file-list>
  <welcome-file>index.html</welcome-file>
</welcome-file-list>

<filter>
    <filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<servlet>
  <servlet-name>Resteasy</servlet-name>

<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>Resteasy</servlet-name>
  <url-pattern>/api/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
  <param-name>resteasy.servlet.mapping.prefix</param-name>
  <param-value>/api</param-value>
</context-param>
<listener>

<listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
</listener>

*applicationContext.xml*

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="
http://www.springframework.org/schema/aop"
   xmlns:tx="http://www.springframework.org/schema/tx"
   xsi:schemaLocation="
      http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
</beans>

*Action Class*
@Namespace("/units")
@Result(
    type = "stream",
    params = {
        "inputName", "stream"
    }
)
public class PropertyTypeAction extends BaseAction implements ActionImpl{

    @PersistenceUnit
    private EntityManagerFactory emf;

    @Action(value="add")
    public String add() {
        .......

    }
}

*Ajax Request firebug report, XML tab*
XML Parsing Error: no element found Location:
moz-nullprincipal:{7fc640bd-f293-4956-8cf2-178765cec735} Line Number 1,
Column 1:

My request is how can i configure struts-spring plugin to work with struts
convention plugin with the annotations.

Re: How do configure struts convention plugin with struts-spring plugin with Action class mapped with annotations

Posted by bavon mike <ba...@gmail.com>.
The actual problem was that struts 2.3.20 has some logging issues with
wildfly(doesnt log anything at runtime)..i just downgraded it to 2.3.16.3
and i was able to trace the error

On Mon, Mar 2, 2015 at 12:53 PM, Lukasz Lenart <lu...@apache.org>
wrote:

> 2015-03-02 10:44 GMT+01:00 bavon mike <ba...@gmail.com>:
> > Even on disabling CDI and using Spring, Ajax cant locate the action
> class.
> >
> > Mapping the action class in struts.xml and bean in applicationContext.xml
> > works fine, problems comes when i want to use annotation( convention
> > plugin) for my action  class rather than using xml.
>
> Do you define actions in Spring context? Maybe you have excluded them
> via config-scan
>
>
> Regards
> --
> Łukasz
> + 48 606 323 122 http://www.lenart.org.pl/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>

Re: How do configure struts convention plugin with struts-spring plugin with Action class mapped with annotations

Posted by Lukasz Lenart <lu...@apache.org>.
2015-03-02 10:44 GMT+01:00 bavon mike <ba...@gmail.com>:
> Even on disabling CDI and using Spring, Ajax cant locate the action class.
>
> Mapping the action class in struts.xml and bean in applicationContext.xml
> works fine, problems comes when i want to use annotation( convention
> plugin) for my action  class rather than using xml.

Do you define actions in Spring context? Maybe you have excluded them
via config-scan


Regards
-- 
Łukasz
+ 48 606 323 122 http://www.lenart.org.pl/

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: How do configure struts convention plugin with struts-spring plugin with Action class mapped with annotations

Posted by bavon mike <ba...@gmail.com>.
Even on disabling CDI and using Spring, Ajax cant locate the action class.

Mapping the action class in struts.xml and bean in applicationContext.xml
works fine, problems comes when i want to use annotation( convention
plugin) for my action  class rather than using xml.


On Mon, Mar 2, 2015 at 12:05 PM, Lukasz Lenart <lu...@apache.org>
wrote:

> You are mixing CDI and Spring - you should use just one DI
>
> 2015-03-02 7:32 GMT+01:00 bavon mike <ba...@gmail.com>:
> > I am trying to configure spring plugin with strut 2 application, which is
> > already running with convention plugin, so am using annotations. Am using
> > ExtJs for my form submission which was initially working well until i
> > introduced the spring plugin, now the the ajax request cannot locate the
> > actions and its even not showing any response in firebug. I have tried
> > searching the net, but i cant find solution of how to successfully
> > configure strut2 convention plugin using annotation with struts-spring
> > plugin. Currently this is what i have
> >
> > *pom.xml*
> >
> > <!-- struts 2 dependencies -->
> > <dependency>
> >     <groupId>org.apache.struts</groupId>
> >     <artifactId>struts2-core</artifactId>
> >     <version>${struts2.version}</version>
> > </dependency>
> >
> > <dependency>
> >     <groupId>org.apache.struts</groupId>
> >     <artifactId>struts2-convention-plugin</artifactId>
> >     <version>${struts2.version}</version>
> > </dependency>
> >
> > <dependency>
> >     <groupId>org.apache.struts</groupId>
> >     <artifactId>struts2-json-plugin</artifactId>
> >     <version>${struts2.version}</version>
> > </dependency>
> >
> > <dependency>
> >     <groupId>org.apache.struts</groupId>
> >     <artifactId>struts2-spring-plugin</artifactId>
> >     <version>${struts2.version}</version>
> > </dependency>
> >
> > <!-- Import the CDI API -->
> > <dependency>
> >     <groupId>org.apache.struts</groupId>
> >     <artifactId>struts2-cdi-plugin</artifactId>
> >     <version>${struts2.version}</version>
> > </dependency>
> > <dependency>
> > <groupId>javax.enterprise</groupId>
> >     <artifactId>cdi-api</artifactId>
> >     <version>1.0-SP1</version><!--$NO-MVN-MAN-VER$-->
> >     <scope>provided</scope>
> > </dependency>
> >
> > <!-- Spring framework -->
> > <dependency>
> >     <groupId>org.springframework</groupId>
> >     <artifactId>spring-core</artifactId>
> >     <version>${spring.version}</version>
> > </dependency>
> > <dependency>
> >     <groupId>org.springframework</groupId>
> >     <artifactId>spring-context</artifactId>
> >     <version>${spring.version}</version>
> > </dependency>
> > <dependency>
> >     <groupId>org.springframework</groupId>
> >     <artifactId>spring-web</artifactId>
> >     <version>${spring.version}</version>
> > </dependency>
> > <dependency>
> >     <groupId>org.springframework</groupId>
> >     <artifactId>spring-beans</artifactId>
> >     <version>${spring.version}</version>
> > </dependency>
> >
> > *struts.xml*
> >
> > <?xml version="1.0" encoding="UTF-8" ?>
> > <!DOCTYPE struts PUBLIC
> >     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
> >     "http://struts.apache.org/dtds/struts-2.0.dtd">
> >
> > <struts>
> >     <constant name="struts.custom.i18n.resources"
> > value="ApplicationResources" />
> >     <constant name="struts.devMode" value="true" />
> >     <constant name="struts.convention.result.path" value="/content" />
> >     <constant name="struts.multipart.saveDir" value="/tmp" />
> >     <constant name="struts.multipart.maxSize" value="4194304" />
> >     <constant name="struts.action.excludePattern" value="/api/.*?" />
> >
> > </struts>
> >
> > *web.xml*
> >
> > <display-name>Application</display-name>
> > <welcome-file-list>
> >   <welcome-file>index.html</welcome-file>
> > </welcome-file-list>
> >
> > <filter>
> >     <filter-name>struts2</filter-name>
> >
> >
> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
> > </filter>
> >
> > <filter-mapping>
> >     <filter-name>struts2</filter-name>
> >     <url-pattern>/*</url-pattern>
> > </filter-mapping>
> >
> > <listener>
> >
> >
> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
> >
> > </listener>
> >
> > <servlet>
> >   <servlet-name>Resteasy</servlet-name>
> >
> >
> <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
> > </servlet>
> > <servlet-mapping>
> >   <servlet-name>Resteasy</servlet-name>
> >   <url-pattern>/api/*</url-pattern>
> > </servlet-mapping>
> > <context-param>
> > <param-name>resteasy.scan</param-name>
> > <param-value>true</param-value>
> > </context-param>
> > <context-param>
> >   <param-name>resteasy.servlet.mapping.prefix</param-name>
> >   <param-value>/api</param-value>
> > </context-param>
> > <listener>
> >
> >
> <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
> > </listener>
> >
> > *applicationContext.xml*
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <beans xmlns="http://www.springframework.org/schema/beans"
> >    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="
> > http://www.springframework.org/schema/aop"
> >    xmlns:tx="http://www.springframework.org/schema/tx"
> >    xsi:schemaLocation="
> >       http://www.springframework.org/schema/beans
> > http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
> > </beans>
> >
> > *Action Class*
> > @Namespace("/units")
> > @Result(
> >     type = "stream",
> >     params = {
> >         "inputName", "stream"
> >     }
> > )
> > public class PropertyTypeAction extends BaseAction implements ActionImpl{
> >
> >     @PersistenceUnit
> >     private EntityManagerFactory emf;
> >
> >     @Action(value="add")
> >     public String add() {
> >         .......
> >
> >     }
> > }
> >
> > *Ajax Request firebug report, XML tab*
> > XML Parsing Error: no element found Location:
> > moz-nullprincipal:{7fc640bd-f293-4956-8cf2-178765cec735} Line Number 1,
> > Column 1:
> >
> > My request is how can i configure struts-spring plugin to work with
> struts
> > convention plugin with the annotations.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>

Re: How do configure struts convention plugin with struts-spring plugin with Action class mapped with annotations

Posted by Lukasz Lenart <lu...@apache.org>.
You are mixing CDI and Spring - you should use just one DI

2015-03-02 7:32 GMT+01:00 bavon mike <ba...@gmail.com>:
> I am trying to configure spring plugin with strut 2 application, which is
> already running with convention plugin, so am using annotations. Am using
> ExtJs for my form submission which was initially working well until i
> introduced the spring plugin, now the the ajax request cannot locate the
> actions and its even not showing any response in firebug. I have tried
> searching the net, but i cant find solution of how to successfully
> configure strut2 convention plugin using annotation with struts-spring
> plugin. Currently this is what i have
>
> *pom.xml*
>
> <!-- struts 2 dependencies -->
> <dependency>
>     <groupId>org.apache.struts</groupId>
>     <artifactId>struts2-core</artifactId>
>     <version>${struts2.version}</version>
> </dependency>
>
> <dependency>
>     <groupId>org.apache.struts</groupId>
>     <artifactId>struts2-convention-plugin</artifactId>
>     <version>${struts2.version}</version>
> </dependency>
>
> <dependency>
>     <groupId>org.apache.struts</groupId>
>     <artifactId>struts2-json-plugin</artifactId>
>     <version>${struts2.version}</version>
> </dependency>
>
> <dependency>
>     <groupId>org.apache.struts</groupId>
>     <artifactId>struts2-spring-plugin</artifactId>
>     <version>${struts2.version}</version>
> </dependency>
>
> <!-- Import the CDI API -->
> <dependency>
>     <groupId>org.apache.struts</groupId>
>     <artifactId>struts2-cdi-plugin</artifactId>
>     <version>${struts2.version}</version>
> </dependency>
> <dependency>
> <groupId>javax.enterprise</groupId>
>     <artifactId>cdi-api</artifactId>
>     <version>1.0-SP1</version><!--$NO-MVN-MAN-VER$-->
>     <scope>provided</scope>
> </dependency>
>
> <!-- Spring framework -->
> <dependency>
>     <groupId>org.springframework</groupId>
>     <artifactId>spring-core</artifactId>
>     <version>${spring.version}</version>
> </dependency>
> <dependency>
>     <groupId>org.springframework</groupId>
>     <artifactId>spring-context</artifactId>
>     <version>${spring.version}</version>
> </dependency>
> <dependency>
>     <groupId>org.springframework</groupId>
>     <artifactId>spring-web</artifactId>
>     <version>${spring.version}</version>
> </dependency>
> <dependency>
>     <groupId>org.springframework</groupId>
>     <artifactId>spring-beans</artifactId>
>     <version>${spring.version}</version>
> </dependency>
>
> *struts.xml*
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <!DOCTYPE struts PUBLIC
>     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
>     "http://struts.apache.org/dtds/struts-2.0.dtd">
>
> <struts>
>     <constant name="struts.custom.i18n.resources"
> value="ApplicationResources" />
>     <constant name="struts.devMode" value="true" />
>     <constant name="struts.convention.result.path" value="/content" />
>     <constant name="struts.multipart.saveDir" value="/tmp" />
>     <constant name="struts.multipart.maxSize" value="4194304" />
>     <constant name="struts.action.excludePattern" value="/api/.*?" />
>
> </struts>
>
> *web.xml*
>
> <display-name>Application</display-name>
> <welcome-file-list>
>   <welcome-file>index.html</welcome-file>
> </welcome-file-list>
>
> <filter>
>     <filter-name>struts2</filter-name>
>
> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
> </filter>
>
> <filter-mapping>
>     <filter-name>struts2</filter-name>
>     <url-pattern>/*</url-pattern>
> </filter-mapping>
>
> <listener>
>
> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
>
> </listener>
>
> <servlet>
>   <servlet-name>Resteasy</servlet-name>
>
> <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
> </servlet>
> <servlet-mapping>
>   <servlet-name>Resteasy</servlet-name>
>   <url-pattern>/api/*</url-pattern>
> </servlet-mapping>
> <context-param>
> <param-name>resteasy.scan</param-name>
> <param-value>true</param-value>
> </context-param>
> <context-param>
>   <param-name>resteasy.servlet.mapping.prefix</param-name>
>   <param-value>/api</param-value>
> </context-param>
> <listener>
>
> <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
> </listener>
>
> *applicationContext.xml*
>
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://www.springframework.org/schema/beans"
>    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="
> http://www.springframework.org/schema/aop"
>    xmlns:tx="http://www.springframework.org/schema/tx"
>    xsi:schemaLocation="
>       http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
> </beans>
>
> *Action Class*
> @Namespace("/units")
> @Result(
>     type = "stream",
>     params = {
>         "inputName", "stream"
>     }
> )
> public class PropertyTypeAction extends BaseAction implements ActionImpl{
>
>     @PersistenceUnit
>     private EntityManagerFactory emf;
>
>     @Action(value="add")
>     public String add() {
>         .......
>
>     }
> }
>
> *Ajax Request firebug report, XML tab*
> XML Parsing Error: no element found Location:
> moz-nullprincipal:{7fc640bd-f293-4956-8cf2-178765cec735} Line Number 1,
> Column 1:
>
> My request is how can i configure struts-spring plugin to work with struts
> convention plugin with the annotations.

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: How do configure struts convention plugin with struts-spring plugin with Action class mapped with annotations

Posted by bavon mike <ba...@gmail.com>.
i have tried <constant name="struts.objectFactory" value="spring" /> but no
result.

On Mon, Mar 2, 2015 at 10:29 AM, Johannes Geppert <jo...@apache.org> wrote:

> According to the spring plugin documentation [1] you need to setup
> following constant in your struts config.
>
> <constant name="struts.objectFactory" value="spring" />
>
>
> Best Regards
>
> Johannes
>
> [1] https://cwiki.apache.org/confluence/display/WW/Spring+Plugin
>
>
> #################################################
> web: http://www.jgeppert.com
> twitter: http://twitter.com/jogep
>
>
> 2015-03-02 7:32 GMT+01:00 bavon mike <ba...@gmail.com>:
>
> > I am trying to configure spring plugin with strut 2 application, which is
> > already running with convention plugin, so am using annotations. Am using
> > ExtJs for my form submission which was initially working well until i
> > introduced the spring plugin, now the the ajax request cannot locate the
> > actions and its even not showing any response in firebug. I have tried
> > searching the net, but i cant find solution of how to successfully
> > configure strut2 convention plugin using annotation with struts-spring
> > plugin. Currently this is what i have
> >
> > *pom.xml*
> >
> > <!-- struts 2 dependencies -->
> > <dependency>
> >     <groupId>org.apache.struts</groupId>
> >     <artifactId>struts2-core</artifactId>
> >     <version>${struts2.version}</version>
> > </dependency>
> >
> > <dependency>
> >     <groupId>org.apache.struts</groupId>
> >     <artifactId>struts2-convention-plugin</artifactId>
> >     <version>${struts2.version}</version>
> > </dependency>
> >
> > <dependency>
> >     <groupId>org.apache.struts</groupId>
> >     <artifactId>struts2-json-plugin</artifactId>
> >     <version>${struts2.version}</version>
> > </dependency>
> >
> > <dependency>
> >     <groupId>org.apache.struts</groupId>
> >     <artifactId>struts2-spring-plugin</artifactId>
> >     <version>${struts2.version}</version>
> > </dependency>
> >
> > <!-- Import the CDI API -->
> > <dependency>
> >     <groupId>org.apache.struts</groupId>
> >     <artifactId>struts2-cdi-plugin</artifactId>
> >     <version>${struts2.version}</version>
> > </dependency>
> > <dependency>
> > <groupId>javax.enterprise</groupId>
> >     <artifactId>cdi-api</artifactId>
> >     <version>1.0-SP1</version><!--$NO-MVN-MAN-VER$-->
> >     <scope>provided</scope>
> > </dependency>
> >
> > <!-- Spring framework -->
> > <dependency>
> >     <groupId>org.springframework</groupId>
> >     <artifactId>spring-core</artifactId>
> >     <version>${spring.version}</version>
> > </dependency>
> > <dependency>
> >     <groupId>org.springframework</groupId>
> >     <artifactId>spring-context</artifactId>
> >     <version>${spring.version}</version>
> > </dependency>
> > <dependency>
> >     <groupId>org.springframework</groupId>
> >     <artifactId>spring-web</artifactId>
> >     <version>${spring.version}</version>
> > </dependency>
> > <dependency>
> >     <groupId>org.springframework</groupId>
> >     <artifactId>spring-beans</artifactId>
> >     <version>${spring.version}</version>
> > </dependency>
> >
> > *struts.xml*
> >
> > <?xml version="1.0" encoding="UTF-8" ?>
> > <!DOCTYPE struts PUBLIC
> >     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
> >     "http://struts.apache.org/dtds/struts-2.0.dtd">
> >
> > <struts>
> >     <constant name="struts.custom.i18n.resources"
> > value="ApplicationResources" />
> >     <constant name="struts.devMode" value="true" />
> >     <constant name="struts.convention.result.path" value="/content" />
> >     <constant name="struts.multipart.saveDir" value="/tmp" />
> >     <constant name="struts.multipart.maxSize" value="4194304" />
> >     <constant name="struts.action.excludePattern" value="/api/.*?" />
> >
> > </struts>
> >
> > *web.xml*
> >
> > <display-name>Application</display-name>
> > <welcome-file-list>
> >   <welcome-file>index.html</welcome-file>
> > </welcome-file-list>
> >
> > <filter>
> >     <filter-name>struts2</filter-name>
> >
> >
> >
> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
> > </filter>
> >
> > <filter-mapping>
> >     <filter-name>struts2</filter-name>
> >     <url-pattern>/*</url-pattern>
> > </filter-mapping>
> >
> > <listener>
> >
> >
> >
> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
> >
> > </listener>
> >
> > <servlet>
> >   <servlet-name>Resteasy</servlet-name>
> >
> >
> >
> <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
> > </servlet>
> > <servlet-mapping>
> >   <servlet-name>Resteasy</servlet-name>
> >   <url-pattern>/api/*</url-pattern>
> > </servlet-mapping>
> > <context-param>
> > <param-name>resteasy.scan</param-name>
> > <param-value>true</param-value>
> > </context-param>
> > <context-param>
> >   <param-name>resteasy.servlet.mapping.prefix</param-name>
> >   <param-value>/api</param-value>
> > </context-param>
> > <listener>
> >
> >
> >
> <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
> > </listener>
> >
> > *applicationContext.xml*
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <beans xmlns="http://www.springframework.org/schema/beans"
> >    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="
> > http://www.springframework.org/schema/aop"
> >    xmlns:tx="http://www.springframework.org/schema/tx"
> >    xsi:schemaLocation="
> >       http://www.springframework.org/schema/beans
> > http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
> > </beans>
> >
> > *Action Class*
> > @Namespace("/units")
> > @Result(
> >     type = "stream",
> >     params = {
> >         "inputName", "stream"
> >     }
> > )
> > public class PropertyTypeAction extends BaseAction implements ActionImpl{
> >
> >     @PersistenceUnit
> >     private EntityManagerFactory emf;
> >
> >     @Action(value="add")
> >     public String add() {
> >         .......
> >
> >     }
> > }
> >
> > *Ajax Request firebug report, XML tab*
> > XML Parsing Error: no element found Location:
> > moz-nullprincipal:{7fc640bd-f293-4956-8cf2-178765cec735} Line Number 1,
> > Column 1:
> >
> > My request is how can i configure struts-spring plugin to work with
> struts
> > convention plugin with the annotations.
> >
>

Re: How do configure struts convention plugin with struts-spring plugin with Action class mapped with annotations

Posted by Johannes Geppert <jo...@apache.org>.
According to the spring plugin documentation [1] you need to setup
following constant in your struts config.

<constant name="struts.objectFactory" value="spring" />


Best Regards

Johannes

[1] https://cwiki.apache.org/confluence/display/WW/Spring+Plugin


#################################################
web: http://www.jgeppert.com
twitter: http://twitter.com/jogep


2015-03-02 7:32 GMT+01:00 bavon mike <ba...@gmail.com>:

> I am trying to configure spring plugin with strut 2 application, which is
> already running with convention plugin, so am using annotations. Am using
> ExtJs for my form submission which was initially working well until i
> introduced the spring plugin, now the the ajax request cannot locate the
> actions and its even not showing any response in firebug. I have tried
> searching the net, but i cant find solution of how to successfully
> configure strut2 convention plugin using annotation with struts-spring
> plugin. Currently this is what i have
>
> *pom.xml*
>
> <!-- struts 2 dependencies -->
> <dependency>
>     <groupId>org.apache.struts</groupId>
>     <artifactId>struts2-core</artifactId>
>     <version>${struts2.version}</version>
> </dependency>
>
> <dependency>
>     <groupId>org.apache.struts</groupId>
>     <artifactId>struts2-convention-plugin</artifactId>
>     <version>${struts2.version}</version>
> </dependency>
>
> <dependency>
>     <groupId>org.apache.struts</groupId>
>     <artifactId>struts2-json-plugin</artifactId>
>     <version>${struts2.version}</version>
> </dependency>
>
> <dependency>
>     <groupId>org.apache.struts</groupId>
>     <artifactId>struts2-spring-plugin</artifactId>
>     <version>${struts2.version}</version>
> </dependency>
>
> <!-- Import the CDI API -->
> <dependency>
>     <groupId>org.apache.struts</groupId>
>     <artifactId>struts2-cdi-plugin</artifactId>
>     <version>${struts2.version}</version>
> </dependency>
> <dependency>
> <groupId>javax.enterprise</groupId>
>     <artifactId>cdi-api</artifactId>
>     <version>1.0-SP1</version><!--$NO-MVN-MAN-VER$-->
>     <scope>provided</scope>
> </dependency>
>
> <!-- Spring framework -->
> <dependency>
>     <groupId>org.springframework</groupId>
>     <artifactId>spring-core</artifactId>
>     <version>${spring.version}</version>
> </dependency>
> <dependency>
>     <groupId>org.springframework</groupId>
>     <artifactId>spring-context</artifactId>
>     <version>${spring.version}</version>
> </dependency>
> <dependency>
>     <groupId>org.springframework</groupId>
>     <artifactId>spring-web</artifactId>
>     <version>${spring.version}</version>
> </dependency>
> <dependency>
>     <groupId>org.springframework</groupId>
>     <artifactId>spring-beans</artifactId>
>     <version>${spring.version}</version>
> </dependency>
>
> *struts.xml*
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <!DOCTYPE struts PUBLIC
>     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
>     "http://struts.apache.org/dtds/struts-2.0.dtd">
>
> <struts>
>     <constant name="struts.custom.i18n.resources"
> value="ApplicationResources" />
>     <constant name="struts.devMode" value="true" />
>     <constant name="struts.convention.result.path" value="/content" />
>     <constant name="struts.multipart.saveDir" value="/tmp" />
>     <constant name="struts.multipart.maxSize" value="4194304" />
>     <constant name="struts.action.excludePattern" value="/api/.*?" />
>
> </struts>
>
> *web.xml*
>
> <display-name>Application</display-name>
> <welcome-file-list>
>   <welcome-file>index.html</welcome-file>
> </welcome-file-list>
>
> <filter>
>     <filter-name>struts2</filter-name>
>
>
> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
> </filter>
>
> <filter-mapping>
>     <filter-name>struts2</filter-name>
>     <url-pattern>/*</url-pattern>
> </filter-mapping>
>
> <listener>
>
>
> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
>
> </listener>
>
> <servlet>
>   <servlet-name>Resteasy</servlet-name>
>
>
> <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
> </servlet>
> <servlet-mapping>
>   <servlet-name>Resteasy</servlet-name>
>   <url-pattern>/api/*</url-pattern>
> </servlet-mapping>
> <context-param>
> <param-name>resteasy.scan</param-name>
> <param-value>true</param-value>
> </context-param>
> <context-param>
>   <param-name>resteasy.servlet.mapping.prefix</param-name>
>   <param-value>/api</param-value>
> </context-param>
> <listener>
>
>
> <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
> </listener>
>
> *applicationContext.xml*
>
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://www.springframework.org/schema/beans"
>    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="
> http://www.springframework.org/schema/aop"
>    xmlns:tx="http://www.springframework.org/schema/tx"
>    xsi:schemaLocation="
>       http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
> </beans>
>
> *Action Class*
> @Namespace("/units")
> @Result(
>     type = "stream",
>     params = {
>         "inputName", "stream"
>     }
> )
> public class PropertyTypeAction extends BaseAction implements ActionImpl{
>
>     @PersistenceUnit
>     private EntityManagerFactory emf;
>
>     @Action(value="add")
>     public String add() {
>         .......
>
>     }
> }
>
> *Ajax Request firebug report, XML tab*
> XML Parsing Error: no element found Location:
> moz-nullprincipal:{7fc640bd-f293-4956-8cf2-178765cec735} Line Number 1,
> Column 1:
>
> My request is how can i configure struts-spring plugin to work with struts
> convention plugin with the annotations.
>