[ http://jira.codehaus.org/browse/XFIRE-1086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_107052 ]
Philip St-Pierre commented on XFIRE-1086: ----------------------------------------- I have the same error and I do use xfire 1.2.6. Here is my environment settings: Application server: Weblogic 8.1 sp6 JDK: jrockit-R27.1.0-jdk1.4.2_12 (J2SE 1.4.2) xfire 1.2.6 Spring 2.0.2 Hibernate 3.2.2ga I am trying to configure a service method to use a out/inout parameter. I am testing that with the book example. My server starts without any problems, but when I start my client test class, I get the following error: java.lang.NullPointerException: at org.codehaus.xfire.aegis.type.basic.HolderType.readObject(HolderType.java:54) at org.codehaus.xfire.aegis.AegisBindingProvider.readParameter(AegisBindingProvider.java:169) at org.codehaus.xfire.service.binding.AbstractBinding.read(AbstractBinding.java:206) at org.codehaus.xfire.service.binding.WrappedBinding.readMessage(WrappedBinding.java:51) at org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(SoapBodyHandler.java:42) at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131) at org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64) at org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38) at org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:304) at org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:129) at org.codehaus.xfire.spring.remoting.XFireServletControllerAdapter.handleRequest(XFireServletControllerAdapter.java:67) at org.codehaus.xfire.spring.remoting.XFireExporter.handleRequest(XFireExporter.java:48) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:45) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:820) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:755) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:360) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at com.psws.patientportal.dmtool.audit.AuditFilter.doFilter(AuditFilter.java:31) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:173) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7053) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902) Here are my classes and config files: public interface BookService { public Book[] getBooks(); public Book findBook(String isbn) throws BookException; public Map getBooksMap(); public Book changeAuthor(String author, Holder bookHolder) throws BookException; } public class BookServiceImpl implements BookService { private Book onlyBook; public BookServiceImpl() { onlyBook = new Book(); onlyBook.setAuthor("Dan Diephouse"); onlyBook.setTitle("Using XFire"); onlyBook.setIsbn("0123456789"); } public Book[] getBooks() { ... } public Book findBook(String isbn) throws BookException { ... } public Map getBooksMap() { ... } public Book changeAuthor(String author, Holder bookHolder) throws BookException { Book newBook = new Book(); newBook.setAuthor(author); newBook.setIsbn(onlyBook.getIsbn()); newBook.setTitle(onlyBook.getTitle()); bookHolder.setValue(newBook); return newBook; } } <!-- BookService.aegis.xml --> <mappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xfire.codehaus.org/schemas/1.0/mapping.xsd"> <mapping> <method name="getBooksMap"> <return-type mappedName="books" keyType="java.lang.String" componentType="com.psws.patientportal.test.xfire.bo.Book" /> </method> <method name="changeAuthor"> <parameter index="0" mappedName="author" typeName="java.lang.String"/> <parameter index="1" mappedName="book" componentType="com.psws.patientportal.test.xfire.bo.Book"/> <return-type mappedName="newBook" componentType="com.psws.patientportal.test.xfire.bo.Book" /> </method> </mapping> </mappings> // Test class public class xfireClientApiTest { public static void main(String[] args) throws Exception { ObjectServiceFactory serviceFactory = new ObjectServiceFactory(); XFireProxyFactory proxyFactory = new XFireProxyFactory(); Service bookServiceModel = serviceFactory.create(BookService.class); BookService bookService = (BookService) proxyFactory.create(bookServiceModel, "http://localhost:7777/patient/xfire/BookService"); Holder bookHolder = new Holder(); // bookHolder.setValue(foundBook); Book newBook = bookService.changeAuthor("Philip St-Pierre", bookHolder); newBook.print(); } } <!-- xfire-servlet.xml --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!-- START SNIPPET: xfire --> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="urlMap"> <map> <entry key="/BookService"> <ref bean="book"/> </entry> </map> </property> </bean> <!-- Declare a parent bean with all properties common to both services --> <bean id="book" class="org.codehaus.xfire.spring.remoting.XFireExporter"> <property name="serviceFactory"> <ref bean="xfire.serviceFactory"/> </property> <property name="xfire"> <ref bean="xfire"/> </property> <property name="serviceBean"> <ref bean="bookService"/> </property> <property name="serviceClass"> <value>com.psws.patientportal.test.xfire.service.BookService</value> </property> </bean> <!-- END SNIPPET: xfire --> </beans> The issue is supposed to be fixed right? Is it? Or did I miss any thing? The documentation doesn't say much on how to use out/inout parameters. Thank you Phil > NullPointerException in Aegis while testing out/inout parameters > ---------------------------------------------------------------- > > Key: XFIRE-1086 > URL: http://jira.codehaus.org/browse/XFIRE-1086 > Project: XFire > Issue Type: Bug > Affects Versions: 1.1.2 > Environment: Windows 2003, JDK 1.5.0_07, Spring 2.0 M5, Resin 3.0.19 > Reporter: Philip St-Pierre > Assignee: Tomasz Sztelak > Fix For: 1.2.6 > > > A simple interface > package test; > import javax.jws.WebParam; > import javax.jws.WebService; > import javax.xml.ws.Holder; > @WebService(serviceName = "Foo") > public interface Foo { > boolean bar(String inStr, @WebParam(mode = WebParam.Mode.INOUT) > Holder<String> outStr); > } > and the implementation > package test; > import javax.jws.WebService; > import javax.xml.ws.Holder; > @WebService(endpointInterface = "test.Foo") > public class FooImpl implements Foo { > public boolean bar(String inStr, Holder<String> outStr) { > outStr.value = "Hello " + inStr; > System.out.println("inStr: " + inStr); > System.out.println("outStr: " + outStr.value); > return true; > } > } > use org.springframework.web.servlet.DispatcherServlet and > org.codehaus.xfire.spring.remoting.XFireExporter to export the service. > when invoked, error occured: > ERROR-[2006-07-12 14:13:48,903] Fault occurred! > java.lang.NullPointerException > at > org.codehaus.xfire.aegis.type.basic.HolderType.readObject(HolderType.java:54) > at > org.codehaus.xfire.aegis.AegisBindingProvider.readParameter(AegisBindingProvider.java:94) > at > org.codehaus.xfire.service.binding.AbstractBinding.read(AbstractBinding.java:208) > at > org.codehaus.xfire.service.binding.WrappedBinding.readMessage(WrappedBinding.java:50) > at > org.codehaus.xfire.jaxws.JAXWSOperationBinding.readMessage(JAXWSOperationBinding.java:148) > at > org.codehaus.xfire.jaxws.JAXWSBinding.readMessage(JAXWSBinding.java:55) > at > org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(SoapBodyHandler.java:42) > at > org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:110) > at > org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:61) > at > org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38) > at > org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:261) > at > org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:120) > at > org.codehaus.xfire.spring.remoting.XFireServletControllerAdapter.handleRequest(XFireServletControllerAdapter.java:63) > at > org.codehaus.xfire.spring.remoting.XFireExporter.handleRequest(XFireExporter.java:44) > at > org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:45) > at > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:797) > at > org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:727) > at > org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396) > at > org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:360) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:154) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:92) > at > com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106) > at > com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178) > at > com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229) > at > com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:268) > at com.caucho.server.port.TcpConnection.run(TcpConnection.java:389) > at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:507) > at com.caucho.util.ThreadPool.run(ThreadPool.java:433) > at java.lang.Thread.run(Thread.java:595) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe from this list please visit: http://xircles.codehaus.org/manage_email