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.:
Ich musste mir auch viele Libraries sprich die ganzen .jar files zurecht suchen wie z.B.
diese habe ich im "Java Build Path" hinzugefügt.
Des weiteren habe ich folgende Files erstellt:
IStuffFunctionality.java
Die StaffFuntionality.java Bean
Die Customer.java Persistence Bean
Und zur guter letzt habe ich die persistence.xml in den META-INF Ordner des Projektes hinzugefügt
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:
Habe ich irgendwo noch eine Einstellung vergessen oder an einer Stelle was Falsch gemacht? Bin über jede Hilfe sehr Dankbar.
Gruß Pawel
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:
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
Habe ich irgendwo noch eine Einstellung vergessen oder an einer Stelle was Falsch gemacht? Bin über jede Hilfe sehr Dankbar.
Gruß Pawel