Hi,

I tried to deploy a small phonebook example which uses an entity bean 
phonebook.EntryBean for the entries and a stateless session bean 
phonebook.PhonebookBean with remote interfaces to manage these entries. I am 
using DTOs implementing java.io.Serializable with zero-arg constructors to 
transfer the data between client and session bean. Now I tried to expose the 
session bean also as a web service. Therefore, I created the following service 
endpoint interface which signatures is similar to the method signatures in the 
session bean:

package phonebook;
  | 
  | import java.rmi.Remote;
  | import java.rmi.RemoteException;
  | 
  | public interface PhonebookSEI extends Remote {
  | 
  |     public EntryDTO findEntry(String firstname, String lastname) throws 
RemoteException;
  |     public void createNewEntry(EntryDTO entry) throws RemoteException;
  |     public EntryDTO[] getEntries() throws RemoteException;
  |     
  | }

Then, I wrote a config.xml for the wscompile tool loooking like this:

<?xml version="1.0" encoding="UTF-8"?>
  | <configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config";>
  |     <service name="PhonebookService"
  |              targetNamespace="http://phonebook";
  |                      typeNamespace="http://phonebook/types";
  |                      packageName="phonebook">
  |             <interface name="phonebook.PhonebookSEI"
  |                    servantName="phonebook.PhonebookBean" />
  |     </service>
  | </configuration>

and used wscompile to create the following WSDL file

<?xml version="1.0" encoding="UTF-8"?>
  | 
  | <definitions name="PhonebookService" targetNamespace="http://phonebook"; 
xmlns:tns="http://phonebook"; xmlns="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:ns2="http://phonebook/types"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";>
  |   <types>
  |     <schema targetNamespace="http://phonebook/types"; 
xmlns:tns="http://phonebook/types"; 
xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns="http://www.w3.org/2001/XMLSchema";>
  |       <complexType name="createNewEntry">
  |         <sequence>
  |           <element name="EntryDTO_1" type="tns:EntryDTO" 
nillable="true"/></sequence></complexType>
  |       <complexType name="EntryDTO">
  |         <sequence>
  |           <element name="dateOfBirth" type="dateTime" nillable="true"/>
  |           <element name="firstname" type="string" nillable="true"/>
  |           <element name="lastname" type="string" nillable="true"/>
  |           <element name="telephoneNumber" type="string" 
nillable="true"/></sequence></complexType>
  |       <complexType name="createNewEntryResponse">
  |         <sequence/></complexType>
  |       <complexType name="findEntry">
  |         <sequence>
  |           <element name="String_1" type="string" nillable="true"/>
  |           <element name="String_2" type="string" 
nillable="true"/></sequence></complexType>
  |       <complexType name="findEntryResponse">
  |         <sequence>
  |           <element name="result" type="tns:EntryDTO" 
nillable="true"/></sequence></complexType>
  |       <complexType name="getEntries">
  |         <sequence/></complexType>
  |       <complexType name="getEntriesResponse">
  |         <sequence>
  |           <element name="result" type="tns:EntryDTO" nillable="true" 
minOccurs="0" maxOccurs="unbounded"/></sequence></complexType>
  |       <element name="createNewEntry" type="tns:createNewEntry"/>
  |       <element name="createNewEntryResponse" 
type="tns:createNewEntryResponse"/>
  |       <element name="findEntry" type="tns:findEntry"/>
  |       <element name="findEntryResponse" type="tns:findEntryResponse"/>
  |       <element name="getEntries" type="tns:getEntries"/>
  |       <element name="getEntriesResponse" 
type="tns:getEntriesResponse"/></schema></types>
  |   <message name="PhonebookSEI_createNewEntry">
  |     <part name="parameters" element="ns2:createNewEntry"/></message>
  |   <message name="PhonebookSEI_createNewEntryResponse">
  |     <part name="result" element="ns2:createNewEntryResponse"/></message>
  |   <message name="PhonebookSEI_findEntry">
  |     <part name="parameters" element="ns2:findEntry"/></message>
  |   <message name="PhonebookSEI_findEntryResponse">
  |     <part name="result" element="ns2:findEntryResponse"/></message>
  |   <message name="PhonebookSEI_getEntries">
  |     <part name="parameters" element="ns2:getEntries"/></message>
  |   <message name="PhonebookSEI_getEntriesResponse">
  |     <part name="result" element="ns2:getEntriesResponse"/></message>
  |   <portType name="PhonebookSEI">
  |     <operation name="createNewEntry">
  |       <input message="tns:PhonebookSEI_createNewEntry"/>
  |       <output 
message="tns:PhonebookSEI_createNewEntryResponse"/></operation>
  |     <operation name="findEntry">
  |       <input message="tns:PhonebookSEI_findEntry"/>
  |       <output message="tns:PhonebookSEI_findEntryResponse"/></operation>
  |     <operation name="getEntries">
  |       <input message="tns:PhonebookSEI_getEntries"/>
  |       <output 
message="tns:PhonebookSEI_getEntriesResponse"/></operation></portType>
  |   <binding name="PhonebookSEIBinding" type="tns:PhonebookSEI">
  |     <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; 
style="document"/>
  |     <operation name="createNewEntry">
  |       <soap:operation soapAction=""/>
  |       <input>
  |         <soap:body use="literal"/></input>
  |       <output>
  |         <soap:body use="literal"/></output></operation>
  |     <operation name="findEntry">
  |       <soap:operation soapAction=""/>
  |       <input>
  |         <soap:body use="literal"/></input>
  |       <output>
  |         <soap:body use="literal"/></output></operation>
  |     <operation name="getEntries">
  |       <soap:operation soapAction=""/>
  |       <input>
  |         <soap:body use="literal"/></input>
  |       <output>
  |         <soap:body use="literal"/></output></operation></binding>
  |   <service name="PhonebookService">
  |     <port name="PhonebookSEIPort" binding="tns:PhonebookSEIBinding">
  |       <soap:address 
location="REPLACE_WITH_ACTUAL_URL"/></port></service></definitions>
  | 

In ejb-jar.xml, I added the service endpoint like this:

<session>
  |          <ejb-name>Phonebook</ejb-name>
  |          <service-endpoint>phonebook.PhonebookSEI</service-endpoint>
  |          <home>phonebook.PhonebookHome</home>
  |          ...
  |       </session>
  | 

and write the webservices.xml like that:

<webservices xmlns="http://java.sun.com/xml/ns/j2ee"; 
  |                 xmlns:impl="http://phonebook/ws4ee";
  |                 xmlns:xsi="http://www.w3.org/2001/XMLSchema.instance";
  |                 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://www.ibm.com/webservices/xsd/j2ee_web_services_1_1.xsd";
  |                 version="1.1">
  |     <webservice-description>
  |             
<webservice-description-name>PhonebookService</webservice-description-name>
  |             <wsdl-file>META-INF/wsdl/PhonebookService.wsdl</wsdl-file>
  |             
<jaxrpc-mapping-file>META-INF/PhonebookService_mapping.xml</jaxrpc-mapping-file>
  |             <port-component>
  |                     <port-component-name>PhonebookSEI</port-component-name>
  |                     <wsdl-port>PhonebookSEIPort</wsdl-port>
  |                     
<service-endpoint-interface>phonebook.PhonebookSEI</service-endpoint-interface>
  |                     <service-impl-bean>
  |                             <ejb-link>ejb/PhonebookBean</ejb-link>
  |                     </service-impl-bean>
  |             </port-component>
  |     </webservice-description>
  | </webservices>

When I now jar the beans and deploy them on JBoss 4.0.3 SP 1, I get the 
following exception:

2006-03-17 14:08:24,444 ERROR [org.jboss.webservice.ServiceDeployer] Cannot 
startup webservice for: gruppe00.jar
  | java.lang.NullPointerException
  |     at 
org.jboss.webservice.ServiceDeployerEJB.createWebXML(ServiceDeployerEJB.java:243)
  |     at 
org.jboss.webservice.ServiceDeployerEJB.deployWebservices(ServiceDeployerEJB.java:131)
  |     at 
org.jboss.webservice.ServiceDeployer.startWebservice(ServiceDeployer.java:191)
  |     at 
org.jboss.webservice.ServiceDeployer.handleNotification(ServiceDeployer.java:121)
  |     at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
  |     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |     at java.lang.reflect.Method.invoke(Method.java:585)
  |     at 
org.jboss.mx.notification.NotificationListenerProxy.invoke(NotificationListenerProxy.java:153)
  |     at $Proxy32.handleNotification(Unknown Source)
  |     at 
org.jboss.mx.util.JBossNotificationBroadcasterSupport.handleNotification(JBossNotificationBroadcasterSupport.java:127)
  |     at 
org.jboss.mx.util.JBossNotificationBroadcasterSupport.sendNotification(JBossNotificationBroadcasterSupport.java:110)
  |     at 
org.jboss.deployment.SubDeployerSupport.emitNotification(SubDeployerSupport.java:340)
  |     at 
org.jboss.deployment.SubDeployerSupport.start(SubDeployerSupport.java:308)
  |     at org.jboss.ejb.EJBDeployer.start(EJBDeployer.java:661)
  |     at sun.reflect.GeneratedMethodAccessor168.invoke(Unknown Source)
  |     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |     at java.lang.reflect.Method.invoke(Method.java:585)
  |     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.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
  |     at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
  |     at 
org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:260)
  |     at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  |     at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:190)
  |     at $Proxy30.start(Unknown Source)
  |     at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1007)
  |     at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:808)
  |     at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:771)
  |     at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
  |     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |     at java.lang.reflect.Method.invoke(Method.java:585)
  |     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:260)
  |     at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  |     at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:190)
  |     at $Proxy6.deploy(Unknown Source)
  |     at 
org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:334)
  |     at 
org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:504)
  |     at 
org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:207)
  |     at 
org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:218)
  |     at 
org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:197)
  | 

I have double-checked everything to my best knowledge, however, I don't find 
the error. Is this a bug, or have I missed something?

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3930964#3930964

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3930964


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to