24.7.2. JavaBeans

In general, these are either Seam entity or JavaBean components, or some other non-component class. Use the appropriate method to create a new instance of the object — Seam.Component.newInstance() for Seam components, or Seam.Remoting.createType() for anything else.
Only objects created by either of these two methods should be used as parameter values, where the parameter is not one of the preexisting valid types. You may encounter component methods where the exact parameter type cannot be determined, such as:
@Name("myAction") 
public class MyAction implements MyActionLocal { 
    public void doSomethingWithObject(Object obj) { 
        // code 
    } 
}
In this case, the interface for myAction will not include myWidget, because it is not directly referenced by any of its methods. Therefore, you cannot pass in an instance of your myWidget component unless you import it explicitly:
<s:remote include="myAction,myWidget"/>
This allows a myWidget object to be created with Seam.Component.newInstance("myWidget"), which can then be passed to myAction.doSomethingWithObject().