I have solve the problem by copying the .properties folder inside /conf which
is in the classpath.
Manu Lopez wrote:
>
> Hello
>
> I've deployed a WebService using Http+Jsr181 components. One of the WS
> operations needs to load a .properties file. Bassically this is the ws
> operation code:
>
> /**
> * Web service operation
> */
> @WebMethod(operationName = "getTicket")
> public String getTicket(@WebParam(name = "username") String username,
> @WebParam(name = "password") String password) throws Exception {
>
> try {
> InputStream fileStream =
> es.intecna.persistence.ContextFactory.class.getClassLoader().getResourceAsStream("ldap/ldap.properties");
> Properties config = new Properties();
> config.load(fileStream);
> }
> catch (Exception e) {
> e.printStackTrace();
> }
> return null;
> }
>
> When I try to invoke the webservice operation with a Client, I get a NPE
> in Servicemix console:
>
> INFO - AegisBindingProvider - xsi:type="" was specified, but no
> corresponding Type was registered; defaulting to
> {http://www.w3.org/2001/XMLSchema}string
> INFO - AegisBindingProvider - xsi:type="" was specified, but no
> corresponding Type was registered; defaulting to
> {http://www.w3.org/2001/XMLSchema}string
> java.lang.NullPointerException
> at java.util.Properties$LineReader.readLine(Properties.java:365)
> at java.util.Properties.load(Properties.java:293)
> at
> es.intecna.webservices.Authentication.getTicket(Authentication.java:54)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> org.codehaus.xfire.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:54)
> at
> org.codehaus.xfire.service.binding.ServiceInvocationHandler.sendMessage(ServiceInvocationHandler.java:271)
> at
> org.codehaus.xfire.service.binding.ServiceInvocationHandler$1.run(ServiceInvocationHandler.java:84)
> at
> org.codehaus.xfire.service.binding.ServiceInvocationHandler.execute(ServiceInvocationHandler.java:132)
> at
> org.codehaus.xfire.service.binding.ServiceInvocationHandler.invoke(ServiceInvocationHandler.java:107)
> 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.apache.servicemix.jsr181.Jsr181ExchangeProcessor.process(Jsr181ExchangeProcessor.java:110)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441)
> at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
> at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
> at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
> at java.lang.Thread.run(Thread.java:595)
>
> The ldap/ldap.properties file is never read.
>
> This file is placed in
> <SM_HOME>/data/smx/service-assemblies/<SA_NAME>/version_1/sus/servicemix-jsr181/<SU_NAME>/ldap/ldap.properties
>
> In the xbean.xml I set the classpath:
> <classpath>
> <location>.</location>
> </classpath>
>
> Where should I place the .properties file?
>
> Thanks
>
>
>
>
>
>
>
>
>
>
> gnodet wrote:
>>
>> You should be able to do that from the deployed bean using
>>
>> getClass().getClassLoader().getResource(xx)
>>
>> or using the thread context class loader.
>>
>> You need to include the needed resources in the SU, and
>> add the <classpath><location>.</location></classpath> tag
>> if you use 3.0.
>>
>> On 11/22/06, Ryan Moquin <[EMAIL PROTECTED]> wrote:
>>> Hello, I was searching online and couldn't find an answer to this
>>> question.
>>> If I package other resources, other than my wsdl, in a JSR 181
>>> service-unit
>>> that I want to load via the classpath, how would I do it? I tried using
>>> my
>>> webservice classloader, but it can't find it. Is there a class I can
>>> use to
>>> grab it?
>>>
>>> Thanks!
>>>
>>>
>>
>>
>> --
>> Cheers,
>> Guillaume Nodet
>>
>>
>
>
--
View this message in context:
http://www.nabble.com/Reading-resources-off-classpath-tf2687650s12049.html#a9313688
Sent from the ServiceMix - User mailing list archive at Nabble.com.