@ManyToOne dentro de um @Embeddedid

Vou direto a os códigos que fiz:

@Entity
public class ItemDoCardapio implements Serializable{

    @EmbeddedId
    private ItemDoCardapioPK id;

    @Column(length=255)
    private String descricao;

//gets e sets
@Embeddable
public class ItemDoCardapioPK implements Serializable {

    private Integer seq;

    @ManyToOne(fetch=FetchType.EAGER)
    @JoinColumn(name="produto",insertable=true,updatable=true)
    private Produto produto;

//gets e sets
@Entity
@TableGenerator(name = "Prod_gen",table="ID_Generator", pkColumnName= "Gen_Nome",
                        valueColumnName="Gen_Val",pkColumnValue="Prod_Val",
                            allocationSize = 2, initialValue = 1)
public class Produto implements Serializable{

    @Id
    @GeneratedValue(strategy=GenerationType.TABLE,generator="Prod_gen")
    private long id;

    @OneToMany(mappedBy="id.produto")
    private List<ItemDoCardapio> itens;

//gets e sets

Rodei os código usando apenas o JavaSE 6 e o JPA(EclipseLink) e funcionou perfeitamente gerando a seguinte tabela(do modo que eu realmente queria):

CREATE TABLE itemdocardapio ( codigo integer NOT NULL, descricao character varying(255), produto bigint NOT NULL, estabelecimento integer, CONSTRAINT itemdocardapio_pkey PRIMARY KEY (codigo, produto), CONSTRAINT fk1aa499e3292fcf1b FOREIGN KEY (produto) REFERENCES produto (id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT fk1aa499e3d14d0e91 FOREIGN KEY (estabelecimento) REFERENCES estabelecimento (id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION )

O problema ocorreu quando quis passar essa aplicação para uma Web(JSF + JPA + Tomcat 7). Ela já gera uma exceção logo que tenta criar o EntityManagerFactory:

[color=red]javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError

Caused by: Exception [EclipseLink-7298] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.ValidationException
Exception Description: The mapping [produto] from the embedded ID class [class com.seumenu.momo.entidade.PK.ItemDoCardapioPK] is an invalid mapping for this class. An embeddable class that is used with an embedded ID specification (attribute [id] from the source [class com.seumenu.momo.entidade.ItemDoCardapio]) can only contain basic mappings. Either remove the non basic mapping or change the embedded ID specification on the source to be embedded.
at org.eclipse.persistence.exceptions.ValidationException.invalidMappingForEmbeddedId(ValidationException.java:1258)
at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.EmbeddedIdAccessor.addIdFieldsFromAccessors(EmbeddedIdAccessor.java:141)
at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.EmbeddedIdAccessor.process(EmbeddedIdAccessor.java:179)
at org.eclipse.persistence.internal.jpa.metadata.MetadataDescriptor.processMappingAccessors(MetadataDescriptor.java:1399)
at org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.processMappingAccessors(ClassAccessor.java:1438)
at org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor.processMappingAccessors(EntityAccessor.java:1061)
at org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor.process(EntityAccessor.java:603)
at org.eclipse.persistence.internal.jpa.metadata.MetadataProject.processStage2(MetadataProject.java:1541)
at org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.processORMMetadata(MetadataProcessor.java:485)
at org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processORMetadata(PersistenceUnitProcessor.java:454)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:1081)
… 38 more[/color]

Gostaria de saber o porque do erro apenas quando tento usar os códigos para aplicação web.
É alguma limitação? Eu que entendi errado a exceção? Eu que estou fazendo errado mesmo? Existe uma forma melhor de implementar?

Obrigado pela atenção