解决:No configuration found for the specified action

本文分析了Struts2框架中使用<s:form>标签时出现警告信息的原因,并给出了正确的解决方案。指出未指定命名空间会导致框架在错误的位置搜索Action。
今天首次使用Struts2,配置一切正常,使用常用tag也正常,但是在使用<s:form>标记时,发现控制台总是输出警告信息,

警告信息内容如下:

警告: No configuration found for the specified action: 'ShowMessage' in namespace: ''. Form action defaulting to 'action' attribute's literal value.
2008-9-6 11:35:47 org.apache.struts2.components.Form evaluateExtraParamsServletRequest
警告: No configuration found for the specified action: 'ShowMessage' in namespace: ''. Form action defaulting to 'action' attribute's literal value.

showmsg.jsp代码如下

<%@ taglib prefix="s" uri="/struts-tags" %>
......
<div>
hello world
<s:form name="ShowMessage" method="post" action="/hello/ShowMessage.action" >
<s:textfield label="user name" name="username"></s:textfield>
<s:submit></s:submit>
</s:form>
</div>
......

struts.xml配置如下:
......
<struts>
<package name="hello" extends="struts-default" namespace="/hello">
<action name="ShowMessage" class="com.historycreator.strutstest.ShowMessage">
<result>/digg/showmsg.jsp</result>
</action>
</package>
</struts>

打开showmsg.jsp页面时,就出现上述异常。尝试了各种配置和访问方法,均出现警告。搜索网络给出的答案几乎都说把<s:form name="ShowMessage" method="post" action="/hello/ShowMessage.action" >中的.action去掉就可以解决了,做了测试,问题仍然没有解决。更有人让把<s:去掉,不用tag,直接写<form>这个当然不会有问题,但是一会用标记,一会不用,很杂乱,并且不是解决问题的根本之道。

解决方法:
经过测试发现,是没有正确使用tag的原因,这种情况下,正确的写法应该是,<s:form name="ShowMessage" method="post" action="ShowMessage" namespace="/hello" >


原因分析:

因为开始使用的struts2标签(form)并未指定namespace属性。所以struts2会默认从根命名空间"/" 搜索action '/hello/ShowMessage.action',如搜索不到则进入默认命名空间''搜索action串,在默认命名空间中是肯定找不到自己定义的action的,所以,struts2抛出一个警告信息。

现在我们指定了namespace为/hello,则struts2会直接在/hello命名空间寻找。可以想象,如果在这么命名空间里找不到请求的action,也会抛出一条类似的信息。

注意,<s:form name="ShowMessage" method="post" action="ShowMessage" namespace="/hello" >
不能写成<s:form name="ShowMessage" method="post" action="ShowMessage.action" namespace="/hello" >

这样仍然有对应的警告信息,并且提交后出现无法访问的结果。因为没有ShowMessage.action这样一个action,这个.action不能由我们手工添加,Struts2会自动为你完成这个工作,并且手工添加是不行的,就不必多此一举了。但是在其他的场合,比如使用超级链结,则可以加上这个.action。
API Description Packet Analyzer Manager APIs cpssDxChPacketAnalyzerManagerCreate Creates a Packet Analyzer Manager cpssDxChPacketAnalyzerManagerDelete Deletes a Packet Analyzer Manager cpssDxChPacketAnalyzerManagerDeviceAdd Associate a device with a Packet Analyzer Manager cpssDxChPacketAnalyzerManagerDeviceRemove Disassociate a device with a Packet Analyzer Manager cpssDxChPacketAnalyzerManagerEnableSet Enables/Disables Packet Analyzer for the device associated with the PA Manager. Following creation, enabling is required to activate the PA Manager cpssDxChPacketAnalyzerManagerDevicesGet Obtains the device managed by a PA Manager, and whether the PM Manager is enabled for the device cpssDxChPacketAnalyzerManagerResetToDefaults Resets a Packet Analyzer manager configuration to default settings. Deletes all keys, rules, and groups; actions are not deleted Field and Key APIs cpssDxChPacketAnalyzerFieldSizeGet Gets field length, in bits cpssDxChPacketAnalyzerLogicalKeyCreate Creates a key with lists of stages and fields. It is possible to create a key with no fields, which results in sampling of the interface with no filtering cpssDxChPacketAnalyzerLogicalKeyDelete Deletes a key cpssDxChPacketAnalyzerLogicalKeyFieldsAdd Adds fields to field list of an existing key cpssDxChPacketAnalyzerLogicalKeyFieldsRemove Removes fields from field list of a key cpssDxChPacketAnalyzerLogicalKeyInfoGet Gets name and field assignment mode of a key cpssDxChPacketAnalyzerLogicalKeyStagesGet Gets Stage list of a key cpssDxChPacketAnalyzerLogicalKeyFieldsPerStageGet Gets list of fields per Stage included in a key cpssDxChPacketAnalyzerUserDefinedFieldAdd Adds a new User Defined field cpssDxChPacketAnalyzerUserDefinedFieldDelete Deletes a User Defined field cpssDxChPacketAnalyzerUserDefinedFieldGet Obtains attributes of User Defined field with the specified name cpssDxChPacketAnalyzerUserDefinedFieldInfoGet Obtains attributes of User Defined Field with enumerated name Action APIs cpssDxChPacketAnalyzerActionCreate Creates an action cpssDxChPacketAnalyzerActionUpdate Updates an action attributes cpssDxChPacketAnalyzerActionDelete Deletes an action cpssDxChPacketAnalyzerActionGet Gets an action configuration cpssDxChPacketAnalyzerActionSamplingEnableSet Enables/Disables sampling for the specified Action Group and Rule APIs cpssDxChPacketAnalyzerGroupCreate Creates a group of rules cpssDxChPacketAnalyzerGroupDelete Deletes a group as well as the rules in it cpssDxChPacketAnalyzerGroupRuleAdd Creates a rule in a group. Verifies the new rule does not conflict with existing rules in the group, and returns an error if it does cpssDxChPacketAnalyzerGroupRuleUpdate Modifies rule attributes, namely field values and action, in a group. Verifies the updated rule does not conflict with other rules in the group, and if it does, returns an error with no update applied cpssDxChPacketAnalyzerGroupRuleDelete Deletes a rule from a group cpssDxChPacketAnalyzerGroupRuleGet Returns definition of a specific rule in a group: key, rule name, list of field values, and action cpssDxChPacketAnalyzerGroupActivateEnableSet Activates/deactivates a group of rules. When a group is activated, its rules are programmed into the switch Data Sampling and Rule Matching APIs cpssDxChPacketAnalyzerSampledDataCountersClear Clears sampling data and counters for a packet analyzer rule cpssDxChPacketAnalyzerRuleMatchStagesGet Gets list of Stages in which a PA rule match was found cpssDxChPacketAnalyzerStageMatchDataGet Gets number of matches, and the sampled field values cpssDxChPacketAnalyzerStageMatchDataAllFieldsGet Gets the stage sampled data for all fields of the specified rule cpssDxChPacketAnalyzerRuleMatchDataAllFieldsByAttributeGet Gets the stage sampled data for all predefine fields of the specified rule and specific search attributes (port/tile, pipe, dp) Falcon only cpssDxChPacketAnalyzerStageMatchDataAllInternalFieldsGet Gets the stage sampled data for all unnamed fields of the specified rule cpssDxChPacketAnalyzerStageMatchDataAllInternalFieldsByAttributesGet Gets the stage sampled data for all unnamed fields of the specified rule for specific search attributes (port/tile, pipe, dp) Falcon only Stage APIs cpssDxChPacketAnalyzerStageFieldsGet Gets list of fields in a Stage cpssDxChPacketAnalyzerStagesGet Gets the list of Stages currently managed by the Manager, and the list of valid Stages cpssDxChPacketAnalyzerFieldStagesGet Gets list of stages including the specified field cpssDxChPacketAnalyzerMuxStagesGet Gets the list of Stages connected to the same i-Debug Instance as the specified Stage cpssDxChPacketAnalyzerMuxStageBind Binds the specified Stage to its i-Debug Instance cpssDxChPacketAnalyzerMuxStageUnbind Unbinds the specified Stage from its i-Debug Instance cpssDxChPacketAnalyzerUserDefinedStageAdd Adds a new User Defined Stage cpssDxChPacketAnalyzerUserDefinedStageDelete Deletes a User Defined Stage cpssDxChPacketAnalyzerUserDefinedStageGet Obtains attributes of User Defined Stage with specified name cpssDxChPacketAnalyzerUserDefinedStageInfoGet Obtains attributes of User Defined Stage with enumerated name cpssDxChPacketAnalyzerStageFieldOverlappingFieldsGet Gets a list of Packet Analyzer fields overlapping the specified field in stage This is important since only a valid field may be matched, which means overlapping fields cannot be matched simultaneously There are no dedicated APIs for configuring the packet-trace feature. The user should configure the packet match criteria in the i-pcl stage, and configure a match on the packet_trace field is the subsequent Stages. Structures and Unions Table 175: Packet Analyzer Structures & Unions Structure / Union Description CPSS_DXCH_PACKET_ANALYZER_COUNTER_INTERRUPT_THRESH_STC Counter threshold. This is a structure due to the counter being spread over several registers CPSS_DXCH_PACKET_ANALYZER_ACTION_STC Packet Analyzer Action configuration CPSS_DXCH_PACKET_ANALYZER_KEY_ATTRIBUTES_STC Packet Analyzer Key attributes (currently name) CPSS_DXCH_PACKET_ANALYZER_GROUP_ATTRIBUTES_STC Packet Analyzer Group attributes (currently name) CPSS_DXCH_PACKET_ANALYZER_RULE_ATTRIBUTES_STC Packet Analyzer Rule attributes (currently name) CPSS_DXCH_PACKET_ANALYZER_MANAGER_ATTRIBUTES_STC Packet Analyzer manager attributes - system mode CPSS_DXCH_PACKET_ANALYZER_FIELD_VALUE_STC Field name, value, and mask CPSS_DXCH_PACKET_ANALYZER_SEARCH_ATTRIBUTE_STC Packet Analyzer search attributes - contains the parameters required according to the search type CPSS_DXCH_PACKET_ANALYZER_INTERNAL_FIELD_VALUE_STC Unnamed field value (data and mask) Enumerations Table 176: Packet Analyzer Enumeration Types Enumeration Description CPSS_DXCH_PACKET_ANALYZER_FIELD_ENT Packet Analyzer pre-defined fields CPSS_DXCH_PACKET_ANALYZER_FIELD_ASSIGNMENT_MODE_ENT Field assignment modes (all / partial) CPSS_DXCH_PACKET_ANALYZER_SAMPLING_MODE_ENT Sampling modes (first / last match) CPSS_DXCH_PACKET_ANALYZER_LOOKUP_STAGES_ENT Packet Analyzer Pre-defined Stages CPSS_DXCH_PACKET_ANALYZER_SEARCH_ATTRIBUTE_TYPE_ENT Packet Analyzer search types我想用上述接口实现丢包统计,该怎么做
09-16
rjh@rjh-Legion-Y7000-IRX9:~$ sudo chrt 10 bash [sudo] rjh 的密码: root@rjh-Legion-Y7000-IRX9:/home/rjh# cd catkin_ws root@rjh-Legion-Y7000-IRX9:/home/rjh/catkin_ws# source devel/setup.bash root@rjh-Legion-Y7000-IRX9:/home/rjh/catkin_ws# roslaunch elfin_robot_bringup elfin_ros_control.launch ... logging to /root/.ros/log/26502f3c-62ba-11f0-8430-fb5811965425/roslaunch-rjh-Legion-Y7000-IRX9-4179.log Checking log directory for disk usage. This may take a while. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB. started roslaunch server http://rjh-Legion-Y7000-IRX9:34493/ SUMMARY ======== PARAMETERS * /elfin_arm_controller/action_monitor_rate: 10 * /elfin_arm_controller/constraints/goal_time: 0.6 * /elfin_arm_controller/constraints/stopped_velocity_tolerance: 0.1 * /elfin_arm_controller/joints: ['elfin_joint1', ... * /elfin_arm_controller/state_publish_rate: 25 * /elfin_arm_controller/stop_trajectory_duration: 0.05 * /elfin_arm_controller/type: position_controll... * /elfin_ros_control/elfin/axis_position_factors: [131072, 131072, ... * /elfin_ros_control/elfin/axis_torque_factors: [2536.224, 2536.2... * /elfin_ros_control/elfin/count_zeros: [10392149, 114135... * /elfin_ros_control/elfin/joint_names: ['elfin_joint2', ... * /elfin_ros_control/elfin/reduction_ratios: [101, 101, 101, 1... * /elfin_ros_control/elfin/slave_no: [1, 2, 3] * /elfin_ros_control/elfin_ethernet_name: enxf8e43be2c806 * /joint_state_controller/joints: ['elfin_joint1', ... * /joint_state_controller/publish_rate: 50 * /joint_state_controller/type: joint_state_contr... * /rosdistro: noetic * /rosversion: 1.17.3 NODES / elfin_arm_controller_spawner (controller_manager/controller_manager) elfin_joint_controller_spawner (controller_manager/controller_manager) elfin_ros_control (elfin_ros_control/elfin_hardware_interface) ROS_MASTER_URI=http://localhost:11311 process[elfin_ros_control-1]: started with pid [4231] process[elfin_joint_controller_spawner-2]: started with pid [4232] process[elfin_arm_controller_spawner-3]: started with pid [4233] Initializing etherCAT master SOEM found and configured 3 slaves SOEM IOMap size: 384 Finished configuration successfully recognizing joint positions, please wait a few minutes ... ... The voltage of slave 3 is: 48.301918V. [WARN] [1752721350.031541438]: recognizePose phase1 failed while pose recognition in slave 3, channel 1 The voltage of slave 1 is: 48.539201V. [WARN] [1752721350.042707511]: recognizePose phase1 failed while pose recognition in slave 1, channel 1 The voltage of slave 2 is: 48.435390V. [WARN] [1752721350.116324490]: recognizePose phase1 failed while pose recognition in slave 2, channel 1 [INFO] [1752721350.123945958]: positions are recognized automatically Loaded 'elfin_arm_controller' [INFO] [1752721350.475878958]: Joints parameter specified, publishing specified joints in desired order. Loaded 'joint_state_controller' Started ['joint_state_controller'] successfully [elfin_arm_controller_spawner-3] process has finished cleanly log file: /root/.ros/log/26502f3c-62ba-11f0-8430-fb5811965425/elfin_arm_controller_spawner-3*.log [elfin_joint_controller_spawner-2] process has finished cleanly log file: /root/.ros/log/26502f3c-62ba-11f0-8430-fb5811965425/elfin_joint_controller_spawner-2*.log Failed to read from ret:0, slave_no:4, index:0x6001, subidx:0x01 Failed to read from ret:0, slave_no:4, index:0x7001, subidx:0x01 rjh@rjh-Legion-Y7000-IRX9:~/catkin_ws$ roslaunch elfin_basic_api elfin_basic_api.launch ... logging to /home/rjh/.ros/log/26502f3c-62ba-11f0-8430-fb5811965425/roslaunch-rjh-Legion-Y7000-IRX9-5148.log Checking log directory for disk usage. This may take a while. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB. started roslaunch server http://rjh-Legion-Y7000-IRX9:40751/ SUMMARY ======== PARAMETERS * /elfin_basic_api/octomap_resolution: 0.1 * /rosdistro: noetic * /rosversion: 1.17.3 NODES / elfin_basic_api (elfin_basic_api/elfin_basic_api_node) elfin_gui (elfin_basic_api/elfin_gui.py) ROS_MASTER_URI=http://localhost:11311 process[elfin_basic_api-1]: started with pid [5200] process[elfin_gui-2]: started with pid [5201] [INFO] [1752721529.688475482]: Loading robot model 'elfin5'... [INFO] [1752721529.688876405]: No root/virtual joint specified in SRDF. Assuming fixed joint [WARN] [1752721529.946238642]: IK plugin for group 'elfin_arm' relies on deprecated API. Please implement initialize(RobotModel, ...). [INFO] [1752721529.947269409]: IK Using joint elfin_link1 -3.14 3.14 [INFO] [1752721529.947281856]: IK Using joint elfin_link2 -2.35 2.35 [INFO] [1752721529.947288023]: IK Using joint elfin_link3 -2.61 2.61 [INFO] [1752721529.947292380]: IK Using joint elfin_link4 -3.14 3.14 [INFO] [1752721529.947297802]: IK Using joint elfin_link5 -2.56 2.56 [INFO] [1752721529.947301917]: IK Using joint elfin_link6 -3.14 3.14 [INFO] [1752721529.947308671]: Looking in common namespaces for param name: elfin_arm/position_only_ik [INFO] [1752721529.947716105]: Looking in common namespaces for param name: elfin_arm/solve_type [INFO] [1752721529.948068494]: Using solve type Speed [INFO] [1752721530.264556136]: Loading robot model 'elfin5'... [INFO] [1752721530.264810423]: No root/virtual joint specified in SRDF. Assuming fixed joint [WARN] [1752721530.495684411]: IK plugin for group 'elfin_arm' relies on deprecated API. Please implement initialize(RobotModel, ...). [INFO] [1752721530.497156629]: IK Using joint elfin_link1 -3.14 3.14 [INFO] [1752721530.497179966]: IK Using joint elfin_link2 -2.35 2.35 [INFO] [1752721530.497185712]: IK Using joint elfin_link3 -2.61 2.61 [INFO] [1752721530.497191200]: IK Using joint elfin_link4 -3.14 3.14 [INFO] [1752721530.497196378]: IK Using joint elfin_link5 -2.56 2.56 [INFO] [1752721530.497201236]: IK Using joint elfin_link6 -3.14 3.14 [INFO] [1752721530.497208263]: Looking in common namespaces for param name: elfin_arm/position_only_ik [INFO] [1752721530.498114765]: Looking in common namespaces for param name: elfin_arm/solve_type [INFO] [1752721530.498724410]: Using solve type Speed [INFO] [1752721531.021208287]: Ready to take commands for planning group elfin_arm. [INFO] [1752721531.294994673]: Loading robot model 'elfin5'... [INFO] [1752721531.295013267]: No root/virtual joint specified in SRDF. Assuming fixed joint [WARN] [1752721531.496140760]: IK plugin for group 'elfin_arm' relies on deprecated API. Please implement initialize(RobotModel, ...). [INFO] [1752721531.498108863]: IK Using joint elfin_link1 -3.14 3.14 [INFO] [1752721531.498123597]: IK Using joint elfin_link2 -2.35 2.35 [INFO] [1752721531.498129693]: IK Using joint elfin_link3 -2.61 2.61 [INFO] [1752721531.498134908]: IK Using joint elfin_link4 -3.14 3.14 [INFO] [1752721531.498140359]: IK Using joint elfin_link5 -2.56 2.56 [INFO] [1752721531.498144824]: IK Using joint elfin_link6 -3.14 3.14 [INFO] [1752721531.498149704]: Looking in common namespaces for param name: elfin_arm/position_only_ik [INFO] [1752721531.498780865]: Looking in common namespaces for param name: elfin_arm/solve_type [INFO] [1752721531.499309872]: Using solve type Speed [INFO] [1752721531.519259723]: Ready to take commands for planning group elfin_arm. [INFO] [1752721532.042548619]: Starting planning scene monitor [INFO] [1752721532.043202235]: Listening to '/planning_scene' [INFO] [1752721532.044296324]: Listening to '/attached_collision_object' for attached collision objects [INFO] [1752721532.044308055]: Starting world geometry update monitor for collision objects, attached objects, octomap updates. [INFO] [1752721532.044810705]: Listening to '/collision_object' [INFO] [1752721532.045350412]: Listening to '/planning_scene_world' for planning scene world geometry [WARN] [1752721532.045472964]: Target frame "world" specified but no TF instance (buffer) specified. No transforms will be applied to received data. [INFO] [1752721532.045575570]: No 3D sensor plugin(s) defined for octomap updates Waiting for service /elfin_basic_api/set_parameters... ^C[elfin_gui-2] killing on exit [elfin_basic_api-1] killing on exit shutting down processing monitor... ... shutting down processing monitor complete done 如何解决
07-18
Software Considerations – Configuration To configure the PA Manager: To create a PA Manager, call cpssDxChPacketAnalyzerManagerCreate, with the managerId parameter set (beginning with 1). To enable the PA Manager, call cpssDxChPacketAnalyzerManagerEnableSet, with the enable parameter set to GT_TRUE. Verify the XML file specifying the i-Debug configuration specific for the device is loaded under the appropriate location. See i-Debug XML Files for locations per platform. Set the device associated with the PA Manager, by calling with the CPSS device number, commonly 0. Should the XML configuration file be missing from the appropriate location, the API returns GT_FAIL. To create a Logical key, call cpssDxChPacketAnalyzerLogicalKeyCreate with: Key ID and name (keyAttrPtr is pointer to key name) A list of stages (CPSS_DXCH_PACKET_ANALYZER_LOOKUP_STAGES_ENT) and fields (CPSS_DXCH_PACKET_ANALYZER_FIELD_ENT) filtered by key NOTE: The key contains only the list of fields. The values determining the sampling/filtering is set by rules using that key - in each rule a list of respective field values. fieldModePtr key creation mode set to ALL / PARTIAL (see table Field Assignment Modes – CPSS_DXCH_PACKET_ANALYZER_FIELD_ASSIGNMENT_MODE_ENT) To create an action, call cpssDxChPacketAnalyzerActionCreate with: Action ID Action to perform samplingEnable set to GT_TRUE To apply the action to descriptors with field values other than those specified in the rule, set inverseEnable to GT_TRUE To create a group of rules, call cpssDxChPacketAnalyzerGroupCreate with its ID and name. To add a rule to a group, call cpssDxChPacketAnalyzerGroupRuleAdd with the following parameters setup: managerId – PA Manager ID keyId – Key ID containing list of fields for which the rule should specify the values, and list of stages in which to match/test these fields groupId – Group ID ruleId – The new rule ID ruleAttPtr – The new rule name numOfFields and fieldsValueArr – Respectively, number and list of specified field values matching the key fields actionId – An existing action ID to perform upon a found match To add keys, actions, rules, and groups, repeat steps 6. through 9.. To activate a group, call cpssDxChPacketAnalyzerGroupActivateEnableSet with the group ID and the enable parameter set to GT_TRUE. Run traffic. To disable a group, call cpssDxChPacketAnalyzerGroupActivateEnableSet with the group ID and the enable parameter set to GT_FALSE. To obtain the list of sampled stages, call cpssDxChPacketAnalyzerRuleMatchStagesGet. To display the sampled data – counters, field names, and field values, for a specific stage, call cpssDxChPacketAnalyzerStageMatchDataGet or cpssDxChPacketAnalyzerStageMatchDataAllFieldsGet. The first returns the values of fields included as input in the field list, and the latter - the values for all stage fields.
09-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值