Announcement

Collapse
No announcement yet.

EJB 3 + Persistence Beans + JBoss 4.2.0, Error beim Deployment

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • EJB 3 + Persistence Beans + JBoss 4.2.0, Error beim Deployment

    Moin Moin,

    ich bin recht neu in J2EE Umfeld, habe bereits viele Foren durchsucht und komme einfach nicht mehr weiter ich hoffe es kann mir einer helfen.

    Ich fange mal was ich bisher gemacht habe.:

    • JBoss Application Server 4.2.0 installiert
    • MS SLQ Server 2005 installiert und DB (Carrental) erstellt
    • Eclipse 3.3.1.1 bei DataSourceExplorer die DB hinzegefügt (wird erkannt und kann erfolgreich einen Ping senden) und den JBoss Server hinzugefügt


    Ich musste mir auch viele Libraries sprich die ganzen .jar files zurecht suchen wie z.B.
    • ejb3-persistence.jar
    • ejb-3_0-api.jar
    • jbossws-spi.jar

    diese habe ich im "Java Build Path" hinzugefügt.


    Des weiteren habe ich folgende Files erstellt:

    IStuffFunctionality.java

    Code:
    package carrental.Beans;
    
    import java.util.Date;
    
    import javax.jws.WebMethod;
    import javax.jws.WebParam;
    import javax.jws.WebService;
    import javax.jws.soap.SOAPBinding;
    import javax.jws.soap.SOAPBinding.Style;
    
    @WebService
    @SOAPBinding(style = Style.RPC)
    public interface IStaffFunction {
    	
    	
    	@WebMethod 
    	public boolean addCustomer(@WebParam(name = "FirstName") String FirstName, 
    							@WebParam(name = "LastName") String LastName, 
    							@WebParam(name = "Street") String Street,
    							@WebParam(name = "HouseNr") int HouseNr, 
    							@WebParam(name = "Zip") int Zip, 
    							@WebParam(name = "City") String City, 
    							@WebParam(name = "Birthday") Date Birthday, 
    							@WebParam(name = "Driverlicense") int Driverlicense);
    
    }

    Die StaffFuntionality.java Bean

    Code:
    package carrental.Beans;
    
    import java.util.Date;
    import javax.annotation.Resource;
    import javax.ejb.Stateless;
    import javax.jws.WebMethod;
    import javax.jws.WebParam;
    import javax.jws.WebResult;
    import javax.jws.WebService;
    import javax.jws.soap.SOAPBinding;
    import javax.jws.soap.SOAPBinding.ParameterStyle;
    import javax.persistence.EntityManager;
    import javax.persistence.EntityManagerFactory;
    import javax.persistence.PersistenceContext;
    
    import org.jboss.wsf.spi.annotation.WebContext;
    
    import carrental.Entities.Customer;
    
    @WebService(endpointInterface= "StaffFunctionality", targetNamespace="urn:StaffFunctionality")
    @WebContext(contextRoot="/CarRental", secureWSDLAccess=false) 
    @Stateless(name="StaffFunctionality")
    @SOAPBinding(style = SOAPBinding.Style.RPC, use = SOAPBinding.Use.ENCODED, parameterStyle = ParameterStyle.BARE)
    public class StaffFunction implements IStaffFunction {
    
    	@PersistenceContext(unitName="Rental")	private EntityManagerFactory emf;
    	
    	@Resource(name="Customer") Customer customer = new Customer();
    	
    	@WebMethod (operationName = "addCustomer")
    	@WebResult(name = "allreadyOK")
    	public boolean addCustomer(@WebParam(name = "FirstName") String FirstName, 
    							@WebParam(name = "LastName") String LastName, 
    							@WebParam(name = "Street") String Street,
    							@WebParam(name = "HouseNr") int HouseNr, 
    							@WebParam(name = "Zip") int Zip, 
    							@WebParam(name = "City") String City, 
    							@WebParam(name = "Birthday") Date Birthday, 
    							@WebParam(name = "Driverlicense") int Driverlicense) {
    		
    		
    		try {
    			EntityManager em = emf.createEntityManager();
    			em.persist(customer);
    			
    			return true;
    		} catch (Exception e) {
    			return false;
    		}
    		
    		
    	}
    
    }
    Die Customer.java Persistence Bean
    Code:
    package carrental.Entities;
    
    import java.io.Serializable;
    import java.util.Date;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.PersistenceUnit;
    import javax.persistence.Table;
    
    
    @Entity(name="Customer")
    @Table(name="Customer")
    @PersistenceUnit(unitName="Customer")
    public class Customer implements Serializable {
    	
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = 5444756778400696524L;
    	protected int CustomerID;
    	private String FirstName;
    	private String LastName;
    	private String Street;
    	private int HouseNr;
    	private int Zip;
    	private String City;
    	private Date Birthday;
    	private int DriverlicensNr;
    	
    	@Id 
    	@GeneratedValue(strategy=GenerationType.AUTO)
    	@Column(name="CustomerID")
    	public int getCustomerID() {
    		return CustomerID;
    	}
    	public void setCustomerID(int customerID) {
    		CustomerID = customerID;
    	}
    	
    	@Column(name="FirstName")
    	public String getFirstName() {
    		return FirstName;
    	}
    	public void setFirstName(String firstName) {
    		FirstName = firstName;
    	}
    	@Column(name="LastName")
    	public String getLastName() {
    		return LastName;
    	}
    	public void setLastName(String lastName) {
    		LastName = lastName;
    	}
    	@Column(name="Street")
    	public String getStreet() {
    		return Street;
    	}
    	public void setStreet(String street) {
    		Street = street;
    	}
    	@Column(name="HouseNr")
    	public int getHouseNr() {
    		return HouseNr;
    	}
    	public void setHouseNr(int houseNr) {
    		HouseNr = houseNr;
    	}
    	@Column(name="Zip")
    	public int getZip() {
    		return Zip;
    	}
    	public void setZip(int zip) {
    		Zip = zip;
    	}
    	@Column(name="City")
    	public String getCity() {
    		return City;
    	}
    	public void setCity(String city) {
    		City = city;
    	}
    	@Column(name="Birthday")
    	public Date getBirthday() {
    		return Birthday;
    	}
    	public void setBirthday(Date birthday) {
    		Birthday = birthday;
    	}
    	@Column(name="DriverlicenseNr")
    	public int getDriverlicensNr() {
    		return DriverlicensNr;
    	}
    	public void setDriverlicensNr(int driverlicensNr) {
    		DriverlicensNr = driverlicensNr;
    	}
    
    }
    Und zur guter letzt habe ich die persistence.xml in den META-INF Ordner des Projektes hinzugefügt
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/ 
    persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
    http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> 
       <persistence-unit name="Carrental">
          <provider>org.hibernate.ejb.HibernatePersistence</provider>
          <jta-data-source>java:/Carrental</jta-data-source>
          <properties>
             <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
             <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
             <property name="hibernate.hbm2ddl.auto" value="read-write" />
             <property name="hibernate.hbm2ddl.auto" value="update" />
          </properties>
       </persistence-unit>
    </persistence>
    So wie ich das verstanden habe müsste der OR Mapper die Persisence Bean auf die DB übertragen und eine Tabelle erstellen, dies ist aber nicht der Fall die DB ist bei mir leer. Hier ist der Auszug der ServerConsole: ***folgt im nächsten Post

    Habe ich irgendwo noch eine Einstellung vergessen oder an einer Stelle was Falsch gemacht? Bin über jede Hilfe sehr Dankbar.

    Gruß Pawel

  • #2
    ..und hier der Auszug aus der ServerConsole

    Code:
    15:05:55,921 ERROR [ServiceEndpointPublisher] Cannot obtain waURL for: Rental.jar
    15:06:16,218 ERROR [ServiceEndpointDeployer] Cannot create service endpoint
    org.jboss.ws.WSException: Cannot build meta data: StaffFunctionality
    	at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:185)
    	at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:49)
    	at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderEJB3.buildMetaData(JAXWSMetaDataBuilderEJB3.java:77)
    	at org.jboss.ws.core.server.ServiceEndpointDeployer.create(ServiceEndpointDeployer.java:92)
    	at org.jboss.ws.integration.jboss42.DeployerInterceptor.createServiceEndpoint(DeployerInterceptor.java:127)
    	at org.jboss.ws.integration.jboss42.DeployerInterceptorEJB.createServiceEndpoint(DeployerInterceptorEJB.java:43)
    	at org.jboss.ws.integration.jboss42.DeployerInterceptor.create(DeployerInterceptor.java:78)
    	at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.create(SubDeployerInterceptorSupport.java:180)
    	at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:91)
    	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
    	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
    	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
    	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
    	at $Proxy34.create(Unknown Source)
    	at org.jboss.deployment.MainDeployer.create(MainDeployer.java:969)
    	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:818)
    	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
    	at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
    	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
    	at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
    	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
    	at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
    	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
    	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
    	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
    	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
    	at $Proxy9.deploy(Unknown Source)
    	at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
    	at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
    	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
    	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
    	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)
    Caused by: java.lang.ClassNotFoundException: StaffFunctionality
    	at java.net.URLClassLoader$1.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.processWebService(JAXWSWebServiceMetaDataBuilder.java:292)
    	at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:94)
    	... 34 more
    15:06:16,218 ERROR [ServiceEndpointPublisher] Cannot obtain waURL for: Rental.jar
    15:06:16,218 ERROR [MainDeployer] Could not create deployment: file:/C:/jboss-4.2.0.GA/server/default/deploy/Rental.jar
    org.jboss.deployment.DeploymentException: Cannot create service endpoint; - nested throwable: (org.jboss.ws.WSException: Cannot build meta data: StaffFunctionality)
    	at org.jboss.deployment.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:53)
    	at org.jboss.ws.integration.jboss42.DeployerInterceptor.create(DeployerInterceptor.java:83)
    	at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.create(SubDeployerInterceptorSupport.java:180)
    	at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:91)
    	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
    	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
    	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
    	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
    	at $Proxy34.create(Unknown Source)
    	at org.jboss.deployment.MainDeployer.create(MainDeployer.java:969)
    	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:818)
    	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
    	at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
    	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
    	at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
    	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
    	at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
    	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
    	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
    	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
    	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
    	at $Proxy9.deploy(Unknown Source)
    	at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
    	at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
    	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
    	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
    	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)
    Caused by: org.jboss.ws.WSException: Cannot build meta data: StaffFunctionality
    	at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:185)
    	at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:49)
    	at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderEJB3.buildMetaData(JAXWSMetaDataBuilderEJB3.java:77)
    	at org.jboss.ws.core.server.ServiceEndpointDeployer.create(ServiceEndpointDeployer.java:92)
    	at org.jboss.ws.integration.jboss42.DeployerInterceptor.createServiceEndpoint(DeployerInterceptor.java:127)
    	at org.jboss.ws.integration.jboss42.DeployerInterceptorEJB.createServiceEndpoint(DeployerInterceptorEJB.java:43)
    	at org.jboss.ws.integration.jboss42.DeployerInterceptor.create(DeployerInterceptor.java:78)
    	... 28 more
    Caused by: java.lang.ClassNotFoundException: StaffFunctionality
    	at java.net.URLClassLoader$1.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.processWebService(JAXWSWebServiceMetaDataBuilder.java:292)
    	at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:94)
    	... 34 more

    Comment

    Working...
    X