[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

help with form request and return result

Posted on 2011-02-21
14
Medium Priority
?
1,679 Views
Last Modified: 2013-12-11
So I have to finish someones project and he left no documentation on what was going on.  He also apparently didnt read all of the details involved in the project.
I have a form where a user can input up to 8 item # and item codes.  When the user submits the information it should send a message thru MQ to our ERP system the ERP system should return XML with item, item code, price and error flag (if there is an error).
The situation I am in is that there is no dev environment so I have to push this directly to the staging enviornment.  So I was hoping to get someone to look at what I have an point out what I am missing or any issues that might come up.  
message sent
<?xml version="1.0" encoding="UTF-8"?>
<xxxItemPrice>
<SourceCode>LOL</SourceCode><SKU>12345</SKU>
<SourceCode>XXX</SourceCode><SKU>6789</SKU>
<SourceCode>QFT</SourceCode><SKU>12311</SKU>
<SourceCode>WTF</SourceCode><SKU>B4532</SKU>
</xxxItemPrice>

message returned
<?xml version="1.0" encoding="UTF-8"?>

<xxxItemPrice>
<SourceCode="LOL" SKU="12345" Price="228.00" ErrorFlag=" " />
<SourceCode="XXX" SKU="6789" Price="44.95" ErrorFlag="X" />
<SourceCode="QFT" SKU="12311" Price="29.95" ErrorFlag=" " />
<SourceCode="WTF" SKU="B4532" Price="168.00" ErrorFlag="X" />
</ItemPrice>

Open in new window

/*
 * Created on 
 */
package com.xxx.commerce.messaging.commands;

import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.ibm.commerce.command.TaskCommandImpl;
import com.ibm.commerce.exception.ECException;
import com.ibm.commerce.messaging.commands.SendMsgCmd;
import com.ibm.commerce.datatype.TypedProperty;
import com.ibm.commerce.command.ControllerCommandImpl;
import com.ibm.commerce.ras.ECTrace;
import com.ibm.commerce.datatype.CommandProperty;
import com.ibm.commerce.order.utils.ResolveParameter;
import com.ibm.commerce.programadapter.messagemapper.MessageMapperGroup;
import com.ibm.commerce.command.CommandFactory;
import com.xxx.commerce.messaging.commands.xxxItemPriceCmd;
import com.ibm.commerce.exception.ParameterNotFoundException;
import com.xxx.commerce.messaging.beans.xxxItemPriceVO;
import com.xxx.commerce.util.logging.xxxLog;

/**
 * @author 
 */
public class xxxItemPriceCmdImpl extends ControllerCommandImpl implements xxxItemPriceCmd {

	private List sourceSku = null;
	private ArrayList retrievedItems = new ArrayList();
	private xxxItemPriceVO valueObject = null;
	private Hashtable sourceCodes = null;
	private Hashtable items = null;
	
	private boolean itemPriceAvailable = false;
	private SendMsgCmd sendToMQ;
	private TypedProperty responseFromMQ;
	private static final String FIELD2 = "field2";
	private static final String FIELD2_PROP = "field2_";
	private static final String PART_NUMBER = "partNumber";
	private static final String PART_NUMBER_PROP = "partNumber_";
	private static final String QUANTITY = "quantity";
	private static final String QUANTITY_PROP = "quantity_";
	private static final String ITEM_PROP = "item_";
	private static final String SOURCE_CODE_PROP = "sourceCode_";
	private static final String MSG_TYPE = "xxxItemPrice";
	private static final String VIEW_NAME = "xxxItemPrice";
	private static final String RESULT_KEY = "sourceSkuVector";
	private static final String SOURCE_CODE="SourceCode";
	private static final String FLAG="ErrorFlag";
	private static final String SKU="SKU";
	private static final String PRICE="Price";
	public static final String CLASSNAME = "com.xxx.commerce.messaging.commands.xxxItemPriceCmdImpl";
	public static final Logger xxxItemPriceLogger = xxxLog.getLogger(xxxItemPriceCmdImpl.class.getName());

	public xxxItemPriceCmdImpl() {
		super();

	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.ibm.websphere.command.Command#reset()
	 */
	public void reset() {
		super.reset();
		sourceSku = null;
		sendToMQ = null;
		this.sourceCodes = null;
		this.items = null;
		this.valueObject = null;
		this.retrievedItems = new ArrayList();
		//responseFromMQ = null;
		itemPriceAvailable = false;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.ibm.websphere.command.TargetableCommand#performExecute()
	 */
	
	private void createOutBoundMessage() throws ECException {
		TypedProperty addressTypedProperty = new TypedProperty();
		addressTypedProperty.put("sourceSku", getSourceSku());
		sendToMQ.compose(VIEW_NAME, getCommandContext(), addressTypedProperty);
		sendToMQ.setCommandContext(getCommandContext());
		xxxItemPriceLogger.log(Level.FINEST,"Sending request Message to MQ backend.");
		sendToMQ.sendReceiveImmediate();
		sendToMQ.execute();	
	}
	
	public void setRequestProperties(TypedProperty aRequestProperties)throws ECException {
		ECTrace.entry(3L, CLASSNAME, "setRequestProperties");
		super.setRequestProperties(aRequestProperties); //need to assign TypedProperty here
		items = ResolveParameter.resolveValues("item", aRequestProperties, false);
		sourceCodes = ResolveParameter.resolveValues("sourceCode", aRequestProperties, false);
		Hashtable temp = null;
		Object [] old = null;
		temp = ResolveParameter.resolveValues(PART_NUMBER, aRequestProperties, false);

		if (temp != null && !temp.isEmpty()) {
			old = temp.keySet().toArray();
			if (old != null && old.length > 0 ) { 
				for (int i = 0; i < old.length; i++, aRequestProperties.remove(PART_NUMBER_PROP + i)) {}
			}
		}
		temp = ResolveParameter.resolveValues(FIELD2, aRequestProperties, false);
		if (temp != null && !temp.isEmpty()) {
			old = temp.keySet().toArray();
			if (old != null && old.length > 0 ) { 
				for (int i = 0; i < old.length; i++, aRequestProperties.remove(FIELD2_PROP + i)) {}
			}
		}
		temp = ResolveParameter.resolveValues(QUANTITY, aRequestProperties, false);
		if (temp != null && !temp.isEmpty()) {
			old = temp.keySet().toArray();
			if (old != null && old.length > 0 ) { 
				for (int i = 0; i < old.length; i++, aRequestProperties.remove(QUANTITY_PROP + i)) {}
			}
		}
		if (sourceCodes == null) {
			sourceCodes = new Hashtable(); 
		}
		if (items == null) {
			items = new Hashtable();
		}
		
		ECTrace.exit(3L, CLASSNAME, "setRequestProperties");
	}
	
	public void performExecute() throws ECException {
		super.performExecute();
		final String METHODNAME = "performExecute";
		ECTrace.entry(4L, CLASSNAME, METHODNAME);
		try {
			sendToMQ = (com.ibm.commerce.messaging.commands.SendMsgCmd) CommandFactory
					.createCommand(
							"com.ibm.commerce.messaging.commands.SendMsgCmd",
							getStoreId());
		} catch (ECException ce) {
			setitemPriceAvailable(false);
			ECTrace.trace(4L, CLASSNAME, METHODNAME, ce
					.getMessage());
			xxxItemPriceLogger.log(Level.SEVERE,"Error occured when trying to connect to MQ	:"+ce
					.getMessage());
			return;
		}
		sendToMQ.setMsgType(MSG_TYPE);
		sendToMQ.setStoreID(getStoreId());
		byte[] resultMessage;
		if (sourceSku == null || sourceSku.size() == 0) {
			setitemPriceAvailable(true);
		} else {
			try {
				int notOkCount = 0;
				createOutBoundMessage();
				resultMessage = sendToMQ.getResult();
				if(resultMessage!=null || resultMessage.length!=0)
				{	
				String xmlResponse = new String(resultMessage);
				int subLength=xmlResponse.indexOf("<");
				if(subLength!=-1)
				{	
				xmlResponse=xmlResponse.substring(subLength);
				xxxItemPriceLogger.log(Level.FINEST,"Reply Message accquired from MQ is: \n"+xmlResponse);
				MessageMapperGroup mapper = new MessageMapperGroup() ;
				CommandProperty cmd = MessageMapperGroup.getObjectForMessage(xmlResponse,"WCS.INTEGRATION");
				if(cmd !=null)
				{
				TypedProperty resultProperty = cmd.getRequestProperties();
				Vector sourceSkuVector = (Vector) resultProperty.get(RESULT_KEY);
				for (int i = 0; i <= sourceSkuVector.size() - 1; i++) {
					Map nextSourceSku = (Map) sourceSkuVector.get(i);
					xxxItemPriceVO temp = this.getsourceSku(i);
					String sourceCode = (String) nextSourceSku.get(SOURCE_CODE);
					String sku = (String) nextSourceSku.get(SKU);
					String price = (String) nextSourceSku.get(PRICE);
					String flag = (String) nextSourceSku.get(FLAG);
					
				}
				
				setitemPriceAvailable(true);
				if (notOkCount == sourceSkuVector.size()) {
					//setNoneChanged(true);
				}
				}
				else
				{
					setitemPriceAvailable(false);
				}
			}
			
				else
				{
					xxxItemPriceLogger.log(Level.FINEST,"No Reply Message from backend obtained" );
					setitemPriceAvailable(false);
				}
				}
				else
				{
					xxxItemPriceLogger.log(Level.FINEST,"No Reply Message from backend obtained" );
					setitemPriceAvailable(false);
				}
			}
			catch (ParameterNotFoundException pnf)
			{
				ECTrace.trace(4L, CLASSNAME, METHODNAME,pnf.getMessage());
				xxxItemPriceLogger.log(Level.SEVERE,"Parameter not found exception occured	:"+pnf.getMessage());
			}
			catch (ECException e) {
				setitemPriceAvailable(false);
				ECTrace.trace(4L, CLASSNAME, METHODNAME, e.getMessage());
				xxxItemPriceLogger.log(Level.SEVERE,"EC exception occured	:"+e.getMessage());
			}
			
			catch (Exception ex) {
				setitemPriceAvailable(false);
				ECTrace.trace(4L, CLASSNAME, METHODNAME, ex.getMessage());
				xxxItemPriceLogger.log(Level.SEVERE,"Exception occured	:"+ex.getMessage());
			}
			ECTrace.exit(4L, CLASSNAME, METHODNAME);
			
		}
		xxxItemPriceLogger.log(Level.FINEST,"Address Verify perform execute completed");
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.xxx.commerce.messaging.commands.xxxItemPriceCmd#getsourceSku()
	 */
	private xxxItemPriceVO getsourceSku(int i) {
		return (xxxItemPriceVO) sourceSku.get(i);
	}

	/*
	 * @return a list of xxxItemPriceVO objects
	 * 
	 * @see com.xxx.commerce.messaging.commands.xxxItemPriceCmd#getsourceSku()
	 */
	public List getsourceSku() {
		return sourceSku;
	}

	/**
	 * @param sourceSku
	 *            The sourceSku to set.
	 */
	public void setsourceSku(List sourceSku) {
		this.sourceSku = sourceSku;
	}

	/**
	 * @return Returns the itemPriceAvailable.
	 */
	public boolean isitemPriceAvailable() {
		return itemPriceAvailable;
	}

	/**
	 * @param itemPriceAvailable
	 *            The itemPriceAvailable to set.
	 */
	private void setitemPriceAvailable(
			boolean itemPriceAvailable) {
		this.itemPriceAvailable = itemPriceAvailable;
	}

	/**
	 * @return Returns the noneChanged.
	 */
	public boolean isNoneChanged() {
		return true;
	}

	/**
	 * @param noneChanged
	 *            The noneChanged to set.
	 */
	private void setNoneChanged(boolean noneChanged) {
		//this.noneChanged = noneChanged;
	}

}

Open in new window

/*
 * Created on
 *
 * A values object used to retrieve prices considering the source code pricing allowed 
 */
package com.xxx.commerce.messaging.beans;

import java.io.Serializable;

/**
 * @author
 * 
 */
public class xxxItemPriceVO implements Serializable {
	
	private String field2 = null; 			// source code stored as field2
	private String partnumber = null; 		// partnumber to lookup
	private String name = null; 			// item description
	private String currentPrice = null; 	// available price
	private boolean newPrice = false;		// indicator if the source code price was unavailable
	private boolean itemFound = false;		// indicator if the part number can be found
	private String quantity;				// quantity of this item for adding to cart
	private String message;					// message to display in the name column.
	private boolean itemAvailable = true;   // indicator if the part number/source code item lookup is available for sale
	
	
	/**
	 * @param field2
	 * @param partnumber
	 */
	public xxxItemPriceVO(String field2, String partnumber) {
		this.field2 = field2;
		this.partnumber = partnumber;
	}
	
	
	/**
	 * 
	 */
	public xxxItemPriceVO() {
	}
	
	
	/**
	 * @return Returns the currentPrice.
	 */
	public String getCurrentPrice() {
		return currentPrice;
	}
	/**
	 * @param currentPrice The currentPrice to set.
	 */
	public void setCurrentPrice(String currentPrice) {
		this.currentPrice = currentPrice;
	}
	/**
	 * @return Returns the field2.
	 */
	public String getField2() {
		return field2;
	}
	/**
	 * @param field2 The field2 to set.
	 */
	public void setField2(String field2) {
		this.field2 = field2;
	}
	/**
	 * @return Returns the name.
	 */
	public String getName() {
		return name;
	}
	/**
	 * @param name The name to set.
	 */
	public void setName(String name) {
		this.name = name;
	}
	/**
	 * @return Returns the newPrice.
	 */
	public boolean isNewPrice() {
		return newPrice;
	}
	/**
	 * @param newPrice The newPrice to set.
	 */
	public void setNewPrice(boolean newPrice) {
		this.newPrice = newPrice;
	}
	/**
	 * @return Returns the partnumber.
	 */
	public String getPartnumber() {
		return partnumber;
	}
	/**
	 * @param partnumber The partnumber to set.
	 */
	public void setPartnumber(String partnumber) {
		this.partnumber = partnumber;
	}
	
	/**
	 * @return Returns the itemFound.
	 */
	public boolean isItemFound() {
		return itemFound;
	}
	/**
	 * @param itemFound The itemFound to set.
	 */
	public void setItemFound(boolean itemFound) {
		this.itemFound = itemFound;
	}
	/**
	 * @return Returns the quantity.
	 */
	public String getQuantity() {
		return quantity;
	}
	/**
	 * @param quantity The quantity to set.
	 */
	public void setQuantity(String quantity) {
		this.quantity = quantity;
	}
	/**
	 * @return Returns the message.
	 */
	public String getMessage() {
		return message;
	}
	/**
	 * @param message The message to set.
	 */
	public void setMessage(String message) {
		this.message = message;
	}
	
	
	/**
	 * @return Returns the itemAvailable.
	 */
	public boolean isItemAvailable() {
		return itemAvailable;
	}
	/**
	 * @param itemAvailable The itemAvailable to set.
	 */
	public void setItemAvailable(boolean itemAvailable) {
		this.itemAvailable = itemAvailable;
	}
/*	
	public String toString() {
		return "Source (field2)=" + getField2() +
			", Item=" + getPartnumber() + 
			", Name=" + getName() +
			", Current Price=" + getCurrentPrice() +  
			", New Price=" + isNewPrice() + 
			", Item Found=" + isItemFound() +
			", Item Available=" + isItemAvailable() +
			", Quantity=" + getQuantity() + 
			", Message=" + getMessage();
	}
*/	
}

Open in new window

package com.xxx.commerce.messaging.commands;

//import java.util.List;

import com.ibm.commerce.command.ControllerCommand;

/**
 * @
 *  */
public interface xxxItemPriceCmd extends ControllerCommand {
	final public static String CLASSNAME = "com.xxx.commerce.source.commands.xxxItemPriceCmdImpl";
	final public static String NAME = "com.xxx.commerce.source.commands.xxxItemPriceCmd";
	final public static String defaultCommandClassName = "com.xxx.commerce.source.commands.xxxItemPriceCmdImpl";
	
	//public ArrayList getRetrievedPrices();
}

Open in new window

0
Comment
Question by:iceman19330
  • 9
  • 3
  • 2
14 Comments
 
LVL 36

Expert Comment

by:Gary Patterson
ID: 34945338
iceman,

Not sure I understand what your question is.

Does this code you are showing us work?  If not, where does it fail, and what is the error message or incorrect results you are experiencing?

If you don't have a development environment, I'd suggest your first step should probably be to create one.  You can get Websphere loaded on your own PC if you have to.

So you have some unfinished, undocumented code that you already know doesn't meet requirements written by someone that left the company, and it just amounts to the little bit of code you posted above?  Personally, I'd just scrap it and start over fresh.  If you have some parts that are good, copy them over, but why waste a lot of time trying to fix someone else's incomplete, non-compliant code.

Now if it was 50K lines of code, I might suggest a different alternative, but this looks like a few hours of work to re-create from the ground up.

Just my opinion, of course.

-Gary Patterson
0
 
LVL 5

Expert Comment

by:lgacs
ID: 34949544
Interfaces used here are NOT MQ interfaces, they are belong (very probably) to
WebSphere Commerce Server Java API.

Try to add the proper tags to your request.and/or move it to other zone.
0
 

Author Comment

by:iceman19330
ID: 34961660
Well here is an error message:

The following section is intended to aid store developers in debugging problems in the sample store.
Error information is listed below.  For further details, increase the  logging for your WebSphere Commerce system, and check the log file.

Exception Type:      1
Message Key: _ERR_CMD_CMD_NOT_FOUND
Message: CMN3101E The system is unavailable due to "CMN0203E".
System Message: Command not found: "com.xxx.commerce.source.commands.xxxItemPriceCmd".
Originating Command:
Corrective Action:

I have corrected all of the areas where it was appearing, dumb typos.  So struts, acp file, cmdreg and the above file where the typo appears.  I have done another acpload, applied the new files and done a complete restart and still I get the error message with the typo.
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 36

Expert Comment

by:Gary Patterson
ID: 34963889
What "typo" are you referring to?

From the error, it looks to me like the com.xxx.commerce.source.commands.xxxItemPriceCmd command (Java Bean) isn't found.  Does it exist, and is it properly registered?  

http://publib.boulder.ibm.com/infocenter/wchelp/v5r6m1/index.jsp?topic=/com.ibm.commerce.base.doc/messages/rgx_ecsymptomdb.htm

- Gary Patterson

0
 

Author Comment

by:iceman19330
ID: 34964692
The typo was that there is no command named that.  So I fixed the instance of the typo but it keeps coming up.  Hoping this next change fixes that.
0
 

Author Comment

by:iceman19330
ID: 34964866
So now I get which is something i have been getting all along.

system.out
StrutsViewExecUnit StrutsViewExecUnit CMN0203E: Command not found: "xxxItemPrice".

genericerror.jsp
Message Key: _ERR_CMD_CMD_NOT_FOUND
Message: CMN3101E The system is unavailable due to "CMN0203E".
System Message: Command not found: "com.xxx.commerce.source.commands.xxxItemPriceCmd".

I have entries in CMDREG, MSGTYPES, struts-ext, have a acpolicy which has run.

So the issue is that I had mistyped com.xxx.commerce.source.commands.xxxItemPriceCmd where it should have been com.xxx.commerce.messages.commands.xxxItemPriceCmd.  I have corrected all of the areas where source was at so that they are now messages.

So I attached the cmdreg entries, struts snippets and the acpolicy xml file I dont know if I am missing something where there is somewhere else that this didnt get updated, but I have gone over the files again and again and I cannot see where this is going wrong.

//acpolicy
<?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?> 
<!DOCTYPE Policies SYSTEM "../dtd/accesscontrolpolicies.dtd">

<Policies>
	<!-- ************************************************************* -->
	<!-- BEGIN: Access control for commands and views -->
	
	<Action Name="xxxShopByItemNumber" CommandName="xxxShopByItemNumber" />
	<Action Name="xxxDisplayCatalogPrices" CommandName="xxxDisplayCatalogPrices" />
	<Action Name="xxxItemPrice" CommandName="xxxItemPrice" />

	<ActionGroup Name="AllSiteUsersViews" OwnerID="RootOrganization">
		<ActionGroupAction Name="xxxShopByItemNumber"/>
		<ActionGroupAction Name="xxxDisplayCatalogPrices"/>
		<ActionGroupAction Name="xxxItemPrice"/>
 	</ActionGroup>
 	
	<Action Name="ExecuteCommand" CommandName="Execute" />

	<ResourceCategory Name="com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmd.ResourceCategory" 
	    ResourceBeanClass="com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmd">
		<ResourceAction Name="ExecuteCommand"/>
	</ResourceCategory>
	
	<ResourceGroup Name="AllSiteUserCmdResourceGroup" OwnerID="RootOrganization">
		<ResourceGroupResource Name="com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmd.ResourceCategory" />
	</ResourceGroup>

	<!-- END: Access control for commands and views -->
	<!-- ************************************************************* -->
 	
</Policies>

Open in new window

// struts config
<forward name="xxxItemPrice/0/-4" 
path="/Messages/xxxItemPriceView.jsp"
className="com.ibm.commerce.struts.ECActionForward" >
<set-property property="interfaceName" value="com.ibm.commerce.messaging.viewcommands.MessagingViewCommand"/>
<set-property property="implClassName" value="com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl"/>
</forward>

<action path="/xxxShopByItemNumber" type="com.ibm.commerce.struts.BaseAction" />
<action path="/xxxDisplayCatalogPrices" type="com.ibm.commerce.struts.BaseAction" />
<action path="/xxxItemPriceReply" type="com.ibm.commerce.struts.BaseAction" 
parameter="com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmd" >
<set-property property="authenticate" value="0:0"/>
</action>
<action path="/xxxItemPrice" type="com.ibm.commerce.struts.BaseAction" />

Open in new window

//cmdreg
STOREENT_ID	INTERFACENAME	DESCRIPTION	CLASSNAME	PROPERTIES	LASTUPDATE	TARGET	OPTCOUNTER
10001	com.xxx.commerce.messaging.commands.xxxItemPriceCmd	MQ Price Inquiry MQ response message	com.xxx.commerce.messaging.commands.xxxItemPriceCmdImpl			Local           	
STOREENT_ID	INTERFACENAME	DESCRIPTION	CLASSNAME	PROPERTIES	LASTUPDATE	TARGET	OPTCOUNTER
0	com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmd	Dummy placeholder for the inbound MQ Price Inquiry MQ response message	com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmdImpl			Local

Open in new window

0
 
LVL 36

Expert Comment

by:Gary Patterson
ID: 34964966
0
 

Author Comment

by:iceman19330
ID: 34965100
Yeah sorry forgot to mention the tables that it suggests to check do not exist and havent existed.
0
 

Author Comment

by:iceman19330
ID: 34965401
Here is an error I get when I turn up the logging.

Explanation: The command factory cannot create a new instance of {0} for a command interface {1}. \n Possible problem :\n (1) Either command implementation class name {0} is incorrect or it does not implement the interface {1}.\n (2) The class is not loaded properly\n
Action:Verify that the class name {0} is correct and it implements the interface {1} and that it is included in the classpath.

Kinda looks the same.  Any thoughts?
0
 
LVL 5

Accepted Solution

by:
lgacs earned 2000 total points
ID: 34967650
If you read the original error message, not just the general explanation with {x} parameters, you will get some hint what class/interface might have typos.

Tip 2:
Have you defined also com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmdImpl, which is not listed here ?
0
 

Author Comment

by:iceman19330
ID: 34969428
I probably should have done this earlier but I am just going to clear everything that I can and re do it step by step and see if there was something not getting overwritten or just something not put in correctly.
0
 

Author Comment

by:iceman19330
ID: 34974435
Error messages are improving.
accessControlCheck The user does not have the authority to run this command
0
 

Author Comment

by:iceman19330
ID: 34974620
So let me ask something.  the xxxItemPrice cmd isnt ment to be seen its to forward on to another template.  should I be worried about the access control?  or since its saying it cant run then it wont forward so I need to worry about it.

@lgacs - yes Reply is  defined, its a placeholder for the MQ reply message.
<?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?> 
<!DOCTYPE Policies SYSTEM "../dtd/accesscontrolpolicies.dtd">

<Policies>
	<!-- ************************************************************* -->
	<!-- BEGIN: Access control for commands and views -->
	
	<Action Name="xxxShopByItemNumber" CommandName="xxxShopByItemNumber" />
	<Action Name="xxxDisplayCatalogPrices" CommandName="xxxDisplayCatalogPrices" />
	<Action Name="xxxItemPrice" CommandName="xxxItemPrice" />

	<ActionGroup Name="AllSiteUsersViews" OwnerID="RootOrganization">
		<ActionGroupAction Name="xxxShopByItemNumber"/>
		<ActionGroupAction Name="xxxDisplayCatalogPrices"/>
		<ActionGroupAction Name="xxxItemPrice"/>
 	</ActionGroup>
 	
	<Action Name="ExecuteCommand" CommandName="Execute" />

	<ResourceCategory Name="com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmd.ResourceCategory" 
	    ResourceBeanClass="com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmd">
		<ResourceAction Name="ExecuteCommand"/>
	</ResourceCategory>
	
	<ResourceGroup Name="AllSiteUserCmdResourceGroup" OwnerID="RootOrganization">
		<ResourceGroupResource Name="com.xxx.commerce.messaging.commands.xxxItemPriceReplyCmd.ResourceCategory" />
	</ResourceGroup>

	<!-- END: Access control for commands and views -->
	<!-- ************************************************************* -->
 	
</Policies>

Open in new window

0
 

Author Comment

by:iceman19330
ID: 34981122
looks as if acpload is borked.  I queried the db and no action name, etc.
0

Featured Post

Vote for the Most Valuable Expert

It’s time to recognize experts that go above and beyond with helpful solutions and engagement on site. Choose from the top experts in the Hall of Fame or on the right rail of your favorite topic page. Look for the blue “Nominate” button on their profile to vote.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

For beginner Java programmers or at least those new to the Eclipse IDE, the following tutorial will show some (four) ways in which you can import your Java projects to your Eclipse workbench. Introduction While learning Java can be done with…
A solution for Fortify Path Manipulation.
Viewers learn how to read error messages and identify possible mistakes that could cause hours of frustration. Coding is as much about debugging your code as it is about writing it. Define Error Message: Line Numbers: Type of Error: Break Down…
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.
Suggested Courses
Course of the Month19 days, 17 hours left to enroll

873 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question