Declaring a string array in an EJB's remote interface causes a verification error in EJBDeployer.verifier.
// BeanInterface.java:
public interface BeanInterface {
static String aString = "foobar";
static String[] anArray = { "foo", "bar" }; // Commenting this out fixes the issue
void foo() throws java.rmi.RemoteException;
}
// BeanRemote.java:
public interface BeanRemote extends javax.ejb.EJBObject, BeanInterface {
}
// BeanHome.java:
public interface BeanHome extends javax.ejb.EJBHome {
BeanRemote create() throws javax.ejb.CreateException, java.rmi.RemoteException;
}
// Bean.java:
public class Bean implements javax.ejb.SessionBean, BeanInterface {
javax.ejb.SessionContext sessionContext;
public void setSessionContext(javax.ejb.SessionContext sessionContext) { this.sessionContext = sessionContext; }
public void ejbActivate() { }
public void ejbPassivate() { }
public void ejbRemove() throws java.rmi.RemoteException { }
public void ejbCreate() throws javax.ejb.CreateException { }
public void foo() throws java.rmi.RemoteException { }
}
WARN [org.jboss.ejb.EJBDeployer.verifier] EJB spec violation:
Bean : Bean
Method : public abstract BeanRemote create() throws CreateException, RemoteException
Section: 6.10.6
Warning: The method return values in the home interface must be of valid types for RMI/IIOP.