Shailesh,
I had a whole set of questions written down before I saw the REAL problem.
Prepare yourself, it's one of those "DUH!" answers because it was a simple
typing mistake. You listed your action like this:
<action path="/Admin"
type="shailesh.AdminAction">
<forward name="x" type="/admin.jsp" />
<forward name="y" type="/admin.jsp" />
</action>
Your forwards should use PATH, not TYPE. There is no java class
"/admin.jsp" so OF COURSE your application server CAN'T instantiate it: it's
a path, not a class!
You still need to fix your SECOND major problem: Your execute() method
signature is wrong. You listed it as:
public ActionForward execute(ActionMapping map,
ActionForm form,
HttpServletRequest req,
HttpServletResponse res)
throws IOException, ServletException
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
There is no action.execute() method with that signature. So, fixing your
forwards would likely result in YOUR version of action.execute() NEVER
running. It would probably default to a blank page since the plain
action.execute() method that Struts calls returns nothing. The one
signature for execute() that you can use for v1.2 (your struts-config.xml
lists you as using v1.2) is:
public ActionForward execute(ActionMapping mapping,
ActionForm form,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse
response)
throws java.lang.Exception
^^^^^^^^^^^^^^^^^^^^
Technically, there is another action.execute() signature BUT it isn't
invoked from a webapp.
Good luck!
Regards,
David
-----Original Message-----
From: shailesh agarwal [mailto:[EMAIL PROTECTED]
Sent: Wednesday, June 08, 2005 6:47 AM
To: Struts Users Mailing List
Subject: Re: AW: No action instance for path /Admin could be created
Yes, It extends org.apache.struts.Action class.
I am putting files that I have used:
struts-config.xml----
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<!--
This is a blank Struts configuration file with an example
welcome action/page and other commented sample elements.
Tiles and the Struts Validator are configured using the factory
defaults
and are ready-to-use.
NOTE: If you have a generator tool to create the corresponding Java
classes
for you, you could include the details in the "form-bean" declarations.
Otherwise, you would only define the "form-bean" element itself, with
the
corresponding "name" and "type" attributes, as shown here.
-->
<struts-config>
<!-- ============================================ Data Source
Configuration -->
<!--
<data-sources>
<data-source type="org.apache.commons.dbcp.BasicDataSource">
<set-property
property="driverClassName"
value="org.postgresql.Driver" />
<set-property
property="url"
value="jdbc:postgresql://localhost/mydatabase" />
<set-property
property="username"
value="me" />
<set-property
property="password"
value="test" />
<set-property
property="maxActive"
value="10" />
<set-property
property="maxWait"
value="5000" />
<set-property
property="defaultAutoCommit"
value="false" />
<set-property
property="defaultReadOnly"
value="false" />
<set-property
property="validationQuery"
value="SELECT COUNT(*) FROM market" />
</data-source>
</data-sources>
-->
<!-- ================================================ Form Bean
Definitions -->
<form-beans>
<!-- sample form bean descriptor for a DynaActionForm
<form-bean
name="logonForm"
type="org.apache.struts.action.DynaActionForm">
<form-property
name="username"
type="java.lang.String"/>
<form-property
name="password"
type="java.lang.String"/>
</form-bean>
end sample -->
</form-beans>
<!-- ========================================= Global Exception
Definitions -->
<global-exceptions>
<!-- sample exception handler
<exception
key="expired.password"
type="app.ExpiredPasswordException"
path="/changePassword.jsp"/>
end sample -->
</global-exceptions>
<!-- =========================================== Global Forward
Definitions -->
<global-forwards>
<!-- Default forward to "Welcome" action -->
<!-- Demonstrates using index.jsp to forward -->
<forward
name="welcome"
path="/Welcome.do"/>
</global-forwards>
<!-- =========================================== Action Mapping
Definitions -->
<action-mappings>
<!-- Default "Welcome" action -->
<!-- Forwards to Welcome.jsp -->
<action
path="/Welcome"
forward="/pages/Welcome.jsp"/>
<action
path="/Login"
forward="/Output.jsp"/>
<action
path="/Admin"
type="shailesh.AdminAction">
<forward name="x" type="/admin.jsp"/>
<forward name="y" type="/admin.jsp"/>
</action>
<!-- sample input and input submit actions
<action
path="/Input"
type="org.apache.struts.actions.ForwardAction"
parameter="/pages/Input.jsp"/>
<action
path="/InputSubmit"
type="app.InputAction"
name="inputForm"
scope="request"
validate="true"
input="/pages/Input.jsp"/>
<action
path="/edit*"
type="app.Edit{1}Action"
name="inputForm"
scope="request"
validate="true"
input="/pages/Edit{1}.jsp"/>
end samples -->
</action-mappings>
<!-- ============================================= Controller
Configuration -->
<controller
processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>
<!-- ======================================== Message Resources
Definitions -->
<message-resources parameter="MessageResources" />
<!-- =============================================== Plug Ins
Configuration -->
<!-- ======================================================= Tiles
plugin -->
<!--
This plugin initialize Tiles definition factory. This later can takes
some
parameters explained here after. The plugin first read parameters from
web.xml, thenoverload them with parameters defined here. All parameters
are optional.
The plugin should be declared in each struts-config file.
- definitions-config: (optional)
Specify configuration file names. There can be several comma
separated file names (default: ?? )
- moduleAware: (optional - struts1.1)
Specify if the Tiles definition factory is module aware. If true
(default), there will be one factory for each Struts module.
If false, there will be one common factory for all module. In this
later case, it is still needed to declare one plugin per module.
The factory will be initialized with parameters found in the
first
initialized plugin (generally the one associated with the
default
module).
true : One factory per module. (default)
false : one single shared factory for all modules
- definitions-parser-validate: (optional)
Specify if xml parser should validate the Tiles configuration file.
true : validate. DTD should be specified in file header (default)
false : no validation
Paths found in Tiles definitions are relative to the main context.
-->
<plug-in className="org.apache.struts.tiles.TilesPlugin" >
<!-- Path to XML definition file -->
<set-property property="definitions-config"
value="/WEB-INF/tiles-defs.xml" />
<!-- Set Module-awareness to true -->
<set-property property="moduleAware" value="true" />
</plug-in>
<!-- =================================================== Validator
plugin -->
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>
</struts-config>
AdminAction class is with in classes/shailesh
package shailesh;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import java.io.*;
import javax.servlet.ServletException;
class AdminAction extends org.apache.struts.action.Action {
String target=null;
public ActionForward execute(ActionMapping map,
ActionForm form,
HttpServletRequest req,
HttpServletResponse res)
throws IOException, ServletException{
target="x";
return(map.findForward(target));
}
}
Shailesh Agarwal
---------------------------------
How much free photo storage do you get? Store your friends n family photos
for FREE with Yahoo! Photos.
http://in.photos.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]