how to integrate Hibernate with EJB3 for JBOSS
by Sam Wun
Hi,
I have deployed a Calculator EJB3 bean within Jboss 5 GA.
eg.
CalculatorBean/remote - EJB3.x Default Remote Business Interface
CalculatorBean/remote-org.jboss.tutorial.stateless.bean.CalculatorRemote
- EJB3.x Remote Business Interface
CalculatorBean/local - EJB3.x Default Local Business Interface
CalculatorBean/local-org.jboss.tutorial.stateless.bean.CalculatorLocal
- EJB3.x Local Business Interface
Now I want to add Hibernate support with it.
Is there any instruction, eg. about what to change in pom.xml and
application-context.xml files, and so on I have to follow?
A simple tutorial for this willl be very well appreciated.
Thanks
Sam
17 years
[JBossWS] - JBoss 5.0.1.GA, JBossWS 3.0.5, JDK 1.6 - java.lang.Unsupport
by a.fluegge
Hello!
I'm trying to call a simple web service with following configuration: 5.0.1.GA, JBossWS 3.0.5, JDK 1.6.0_14. Details below.
Callin the service gets the following exception:
| 11:33:16,163 ERROR [SOAPFaultHelperJAXWS] SOAP request exception
| java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage
| at javax.xml.soap.SOAPMessage.setProperty(SOAPMessage.java:445)
| at org.jboss.ws.core.soap.SOAPMessageImpl.<init>(SOAPMessageImpl.java:82)
| at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:215)
| at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:193)
| at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:455)
| at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:295)
| at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:205)
| at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:131)
| at org.jboss.wsf.common.servlet.AbstractEndpointServlet.service(AbstractEndpointServlet.java:85)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
| at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
| at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
| at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
| at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
| at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| at java.lang.Thread.run(Thread.java:619)
|
I suppose that the SOAPMessage class comes from the JDK 1.6 which is incompatible with the one from JBossWS (in jbossws-native-saaj.jar). The jar file is located in the <JBOSS_HOME>/lib/endorsed dir. All suggestions to solve this problem are to copy the jar files to the endorsed dir, but they are already there!
Can anybody help me?
Thanks,
Andreas
This is the source:
| package test;
|
| import javax.ejb.Stateless;
| import javax.jws.WebMethod;
| import javax.jws.WebService;
|
| import org.apache.commons.logging.Log;
| import org.jboss.seam.annotations.Logger;
|
| @Stateless
| @WebService(name = "testService", serviceName = "testService")
| public class TestService implements TestServiceRemote {
|
| @Logger
| private Log log;
|
| @WebMethod
| public String testService(String name) {
| String txt = "testService:" + name;
|
| log.info("testService:" + name);
|
| return txt;
| }
| }
|
| package test;
|
| import javax.ejb.Remote;
| import javax.jws.WebMethod;
|
| @Remote
| public interface TestServiceRemote {
| @WebMethod
| public String testService(String name);
| }
|
Deployment is no problem, calling the http:.../TestService?wsdl URL gets the following:
| <definitions name='testService' targetNamespace='http://test/' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='http://test/' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
| <types>
| <xs:schema targetNamespace='http://test/' version='1.0' xmlns:tns='http://test/' xmlns:xs='http://www.w3.org/2001/XMLSchema'>
| <xs:element name='testService' type='tns:testService'/>
| <xs:element name='testServiceResponse' type='tns:testServiceResponse'/>
| <xs:complexType name='testService'>
| <xs:sequence>
| <xs:element minOccurs='0' name='arg0' type='xs:string'/>
| </xs:sequence>
|
| </xs:complexType>
| <xs:complexType name='testServiceResponse'>
| <xs:sequence>
| <xs:element minOccurs='0' name='return' type='xs:string'/>
| </xs:sequence>
| </xs:complexType>
| </xs:schema>
| </types>
| <message name='testService_testServiceResponse'>
|
| <part element='tns:testServiceResponse' name='testServiceResponse'></part>
| </message>
| <message name='testService_testService'>
| <part element='tns:testService' name='testService'></part>
| </message>
| <portType name='testService'>
| <operation name='testService' parameterOrder='testService'>
| <input message='tns:testService_testService'></input>
| <output message='tns:testService_testServiceResponse'></output>
|
| </operation>
| </portType>
| <binding name='testServiceBinding' type='tns:testService'>
| <soap:binding style='document' transport='http://schemas.xmlsoap.org/soap/http'/>
| <operation name='testService'>
| <soap:operation soapAction=''/>
| <input>
| <soap:body use='literal'/>
| </input>
|
| <output>
| <soap:body use='literal'/>
| </output>
| </operation>
| </binding>
| <service name='testService'>
| <port binding='tns:testServiceBinding' name='testServicePort'>
| <soap:address location='http://127.0.0.1:8080/spaceserver-spaceserver/TestService'/>
| </port>
|
| </service>
| </definitions>
|
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4242812#4242812
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4242812
17 years