Re: Unable to initialize context error with EJB on IPlanet (iAS 6.0)

2002-11-14 Thread Raghavan Srinivasan
one way would be to tweak 
org/apache/soap/providers/StatelessEJBProvider.java  to use the 
following mechanism to create the InitialContext  . iAS 6.0 supports the 
no args mechanism of creating the IntitialContext inside the container .

try
{
 /// current mechanism
 javax.naming.InitialContext context = new 
javax.naming.InitialContext(props) ;
}
catch (NameNotFoundException e)
{
   context = new javax.naming.InitialContext() ; // no args .
}

-Raghavan


Fergus O'Dalaigh wrote:

Hi, I've deployed normal Java classes as services on the SOAP web app, but I really need to use EJB's as services.

I'm using iAS 6.0 (iPlanet Application Server) and SOAP 2.3.1.

I get a Unable to initialize context error when I run my SOAP client.
Here is my SOAP deployment descriptor:

?xml version=1.0?
isd:service xmlns:isd=http://xml.apache.org/xml-soap/deployment;
   id=urn:ejbhello
isd:provider type=org.apache.soap.providers.StatelessEJBProvider
  scope=Application
  methods=create
  isd:option key=JNDIName value=TheGreeter/
  isd:option key=FullHomeInterfaceName
  value=samples.helloworld.ejb.GreeterHome /
  isd:option key=ContextProviderURLvalue=iiop://localhost:900 /
  isd:option key=FullContextFactoryName
  value=com.sun.jndi.cosnaming.CNCtxFactory/
/isd:provider
isd:faultListenerorg.apache.soap.server.DOMFaultListener
/isd:faultListener
/isd:service

I think the problem lies with value of ContextProviderURL, since I couldn't track down the actual naming provider URL to use with IPlanet.

The EJB is deployed and working on the server.
I also copied the EJB jar file ias home/APPS/modules/soap/WEB-INF/lib

Has anyone out there managed to do this?

Fergus, Barcelona Spain.



__
The NEW Netscape 7.0 browser is now available. Upgrade now! http://channels.netscape.com/ns/browsers/download.jsp 

Get your own FREE, personal Netscape Mail account today at http://webmail.netscape.com/

--
To unsubscribe, e-mail:   mailto:soap-user-unsubscribe;xml.apache.org
For additional commands, e-mail: mailto:soap-user-help;xml.apache.org

 




--
To unsubscribe, e-mail:   mailto:soap-user-unsubscribe;xml.apache.org
For additional commands, e-mail: mailto:soap-user-help;xml.apache.org




Re: do an Apache SOAP 2.3 release ?

2002-04-26 Thread Raghavan Srinivasan

Hi Sanjiva ,
   This makes a lot of sense to me . For folks that have been 
using / certifying their applications with  the 2.2 release(and have not 
yet adopted Axis)  , handling bugs / features introduced in future 
builds means having to go through cvs and figure out exactly which files 
changed and patch them in . 
e.g i am still trying to locate all the files changed  to support the 
switching the Current Schema version to 2001 .
Simply changing Constants.java does not solve the problem completely .

This is ugly and when customers are involved , there is the greater risk 
that if they make their own
 changes in the 2.2 install to support their own app specific changes  , 
they might overwrite the changes shipped out to them .

Having a 2.3 release will bring in all such changes  over the last year 
into one version .

Thanks -
Raghavan



Sanjiva Weerawarana wrote:

Hello,

Its been quite a while since we released v2.2 of Apache SOAP. Since then
about 50 bugs have been fixed and there are about another 50 remaining
in the queue (most of them are non-bugs or trivial but some a big). 

I'm interested in doing a v2.3 to try to capture all the fixes that
have been done since 2.2 into a labeled version. Originally it was
intended that v2.2 would be the last as Axis was spsed to take over,
but Axis is now running more than an year late!! However, it looks
like Axis is finally getting nearer to 1.0 status and so putting out
Apache SOAP v2.3 would really allow us to say that's the final verdict
for this codebase.

I'm willing to serve as release manager and will write up a release 
plan. The purpose of this note is to gauge interest on this effort.

Thanks!

Sanjiva.






Re: xsi type, NS_URI_CURRENT_SCHEMA_XSD

2002-02-05 Thread Raghavan Srinivasan

Hi Oliver ,
 This  is not the answer to your question , but is a related 
change . I think you need to also change the QName array in 
Constants.java that contains schema mappings for various versions . 
QName schema2001QNames [] incorrectly uses timeInst2001QName 
(xsd:timeInstant) when it should be using dateTime .
Someone correctly me if i am wrong , but i saw this fix in a later 
release (later than 2.2) of  Constants.java  (Rev 1.21 and Rev 1.22) .

I saw this cause problems with some WSDL based clients(XSD 2001 
compliant)  who do  not know how to interpret a Soap message that 
contain xsd:timeInstant .

Also if someone has a comprehensive list of changes required to switch 
the Schema version on an install to 2001 , please post the list of 
changes here .

Thanks in advance ,
Raghavan


Oliver Wulff wrote:

Hi

I need to communicate with the XMLBus from IONA. So, it's necessary to use
the XML Schema 2001. But the soap package use by default 1999. I've read in
the documentation guide\interop.html, that I can download the source code
and change the Constants.java:
  public static final String NS_URI_CURRENT_SCHEMA_XSI =
NS_URI_2001_SCHEMA_XSI;
  public static final String NS_URI_CURRENT_SCHEMA_XSD =
NS_URI_2001_SCHEMA_XSD;

But still, the old Schema will be used.

Then, I searched through the source code and found the following in
SOAPMappingRegistry.java:
  public String schemaURI = Constants.NS_URI_1999_SCHEMA_XSD;
  QName [] schemaQNames = schema1999QNames;

If it is hard coded, it will not work. After the following change, it
worked:
  public String schemaURI = Constants.NS_URI_CURRENT_SCHEMA_XSD;
  QName [] schemaQNames = null;

The only problem is, that there is still an attribute definition in the
Envelope element in the soap request message:
  ?xml version='1.0' encoding='UTF-8'?
  SOAP-ENV:Envelope xmlns:SOAP-ENV
=http://schemas.xmlsoap.org/soap/envelope/; xmlns:xsi
=http://www.w3.org/1999/XMLSchema-instance;xmlns:xsd
=http://www.w3.org/1999/XMLSchema;
  SOAP-ENV:Body
  ns1:echoFloat xmlns:ns1=http://soapinterop.org/;
SOAP-ENV:encodingStyle=http://schemas.xmlsoap.org/soap/encoding/;
  inputFloat xmlns:ns2=http://www.w3.org/2001/XMLSchema; xsi:type
=ns2:float333.444/inputFloat
  /ns1:echoFloat
  /SOAP-ENV:Body
  /SOAP-ENV:Envelope


Did anybody have the same problem and found a better solution? Can I force
that the Schema 2001 will be used in the whole SOAP message?
Thanks

Oliver








*** BITTE BEACHTEN ***
Diese Nachricht (wie auch allfällige Anhänge dazu) beinhaltet
möglicherweise vertrauliche oder gesetzlich geschützte Daten oder
Informationen. Zum Empfang derselben ist (sind) ausschliesslich die
genannte(n) Person(en) bestimmt. Falls Sie diese Nachricht
irrtümlicherweise erreicht hat, sind Sie höflich gebeten, diese unter
Ausschluss jeder Reproduktion zu zerstören und die absendende Person
umgehend zu benachrichtigen. Vielen Dank für Ihre Hilfe.






Re: WSDL?

2002-01-29 Thread Raghavan Srinivasan



Gary Feldman wrote:
007201c1a90b$6de93920$[EMAIL PROTECTED]">
  
From: Wallis, Simon (Toronto - 22 Front)Sent: Tuesday, January 29, 2002 4:10 PM



  1) Is WSDL a Microsoft-only thing?
  
  WSDL is a proposal that has been submitted to the W3C, but not yet adopted.While over two dozen companies signed the submission, Microsoft and IBM seemtobe the leading proponents.
  
2) How does one generate these files?

There are a variety of tools out there, from a variety of sources.  TheIBM Web Service Toolkit is an obvious starting place, but there are others.And, in case it isn't obvious, Microsoft Visual Studio .Net generates them.

 Glue from MindElectric (www.mindelectric.com) is a good Java WSDL compiler
. Code generated
by this toolkit works well with Apache Soap too . (wsdl based clients calling
Apache Soap services) .
007201c1a90b$6de93920$[EMAIL PROTECTED]">
  
  
  


Re: WSDL?

2002-01-29 Thread Raghavan Srinivasan



sorry the URL should have read www.themindelectric.com


Raghavan Srinivasan wrote:
[EMAIL PROTECTED]">   Gary Feldman
wrote:
  007201c1a90b$6de93920$[EMAIL PROTECTED]">

  From: Wallis, Simon (Toronto - 22 Front)Sent: Tuesday, January 29, 2002 4:10 PM
  
  
  
1) Is WSDL a Microsoft-only thing?

WSDL is a proposal that has been submitted to the W3C, but not yet adopted.While over two dozen companies signed the submission, Microsoft and IBM seemtobe the leading proponents.

  2) How does one generate these files?
  
  There are a variety of tools out there, from a variety of sources.  TheIBM Web Service Toolkit is an obvious starting place, but there are others.And, in case it isn't obvious, Microsoft Visual Studio .Net generates them.
  
  Glue from MindElectric (
www.mindelectric.com
) is a good Java WSDL compiler . Code generated
 by this toolkit works well with Apache Soap too . (wsdl based clients calling 
Apache Soap services) .
  
  
  
  
  


xsd:timeInstant Problems ?

2002-01-18 Thread Raghavan Srinivasan


I am trying to use WSDL generated classes (using mind electric glue 2.0.1
) to call an Apache Soap service (2.2) . I am returning a Java DateTime
variable using the following encoding
Date date = new Date() ;
pLastModifiedDate = new Parameter("mLastModified" , Date.class
,

date , null );
xjmr.marshall( blah ) ;
Somehow Apache seems to be trying to serialize this using xsd:timeInstant
as i get back the following error...
Exception in thread "main" electric.util.WrappedException: SOAPException(
Server
: cannot find schema type for xsd:timeInstant )
at electric.registry.Reference.invoke(Unknown Source)
at electric.util.proxy.proxy1.Proxy.invokeObject(Unknown Source)
at electric.util.proxy.DynProxy__ejb2_client_IPMSoapService__electric_util_IContextHolder.createProcessInstance(Unknown
Source)
t ejb2.client.GlueClientToApache.main(GlueClientToApache.java:30)
My WSDL used a standard xsd:dateTime type for the value . I looked
at the XSD 2001 spec @ www.w3.org/tr/schema-02
and this has no mention of timeInstant .
Is this a Schema versioning issue ? How do i get around this ?

Thanks -
Raghavan



WSDL , Apache Soap question

2002-01-11 Thread Raghavan Srinivasan

I have a Apache Web service one of whose methods  takes in
java.util.Hashtable as a parameter . I understand that the Apache
Toolkit supports Hashtable encoding . But i want to write a WSDL
interface to this service that toolkits from other languages could use
to generate stubs .

I could'nt find the right schema element to represent a structure
similar to Map / Hashtable .

I used the Idoox java2wsdl utility to see what the utility generates and
it came up with ns0:Hashtable
where ns0 = http://xml.apache.org/xml-soap .

This is obviously Apache specific and I dont know how compilers from
other languages will interpret it .

 Has anyone else faced a similar issue ?

Thanks -
Raghavan





No Deserializer found ...Apache - Apache

2002-01-07 Thread Raghavan Srinivasan

I know this one error has been seen by a lot of folks using the MSTK
with Apache . Has anyone seen this with an Apache client calling a
Apache service ?

I am trying to send across a complex type across a Soap call . I have
taken care to register the serializer-serializer combo with both the
service Deployment Descriptor as well as  the client code , taking care
to avoid typos .

I can even see the serializers being loaded and called in the right
sequence . I am tunneling my call thru the
org.apache.soap.util.net.TcpTunnelGui and can see the Soap invocation
being made , but the call never seems to make it on the other side
(server) .

I keep getting  this error

  Fault Code   = SOAP-ENV:Client
  Fault String = No Deserializer found to deserialize a
'urn:xml-soap-ipm:wfactivity' using encoding style
'http://schemas.xmlsoap.org/soap/encoding/'.
Exception in thread main java.lang.Exception:  SOAP Service Exception
:SOAP-E
V:Client:No Deserializer found to deserialize a
'urn:xml-soap-ipm:wfactivity' u
ing encoding style 'http://schemas.xmlsoap.org/soap/encoding/'.
at ejb2.client.PMMessageClient.send(PMMessageClient.java:147)
at ejb2.client.PMMessageClient.main(PMMessageClient.java:224)

 I tried using the following API call in my code to see if the mappings
are registered fine and it turns up OK too .

Deserializer deSer = smr.queryDeserializer (new
QName(urn:xml-soap-ipm ,wfactivity),
http://schemas.xmlsoap.org/soap/encoding/; ) ;
if (deSer == null)
System.out.println (NO DESERIALIZER FOUND FOR: +
urn:xml-soap-ipm:wfactivity ) ;
else
System.out.println (DESERIALIZER FOUND) ;

I cant figure whats happening . Any tips to debug this problem further /
any insights ?

Thanks -
Raghavan





writing serializers for complex objects

2001-12-16 Thread Raghavan Srinivasan

how would i write a serializer  for a complex object that looks
like..

class AddressHolder
{
 // this contains a list of Address objects
 HashMap addresses ;
 // .

}

class Address
{
 getName()  ;
 getZip() ;
 ...
}

Does AddressHolderSerializer() have to iterate thru all Addresses and
call xjmr.marshall(..)  on each Address ?

-Raghavan





Base Complex Type ?

2001-12-14 Thread Raghavan Srinivasan


I tried tweaking the address2 Serializers class and created a BaseSerializer
that dynamically loads up other serializers and deserializers based on
the type of the object /
name of the XML element as follows .
public class BaseSerializer
{
public void marshall ()
{
 serHandlerType = complexType
+ "Serializer" ;
 System.out.println ("BaseSerializer
Loading Serializer:" + serHandlerType) ;
 IPMSerializer serHandler
= (IPMSerializer)Class.forName(serHandlerType).newInstance() ;
 serHandler.serialize(inScopeEncStyle,
javaType, src, context , sink ,

nsStack, xjmr, ctx ) ;
}
 public Bean unmarshall(String inScopeEncStyle, QName elementType,

Node src, XMLJavaMappingRegistry xjmr, SOAPContext ctx)
 throws IllegalArgumentException
 {
 Class deSerHandlerType =
null ;
 IPMSerializer deSerHandler
= null ;
 Bean retVal = null ;

 try
 {

deSerHandlerType = xjmr.queryJavaType( elementType , inScopeEncStyle )
;

deSerHandler = (IPMSerializer)deSerHandlerType.newInstance() ;


retVal = deSerHandler.objectify(inScopeEncStyle , elementType, src,
xjmr , ctx ) ;
 }


The actual objects serializers extend the BaseSerializer and implement
the serialize() and objectify() methods
as follows
 public void serialize( String inScopeEncStyle,
Class javaType,

Object src, Object context, Writer sink,

NSStack nsStack, XMLJavaMappingRegistry xjmr, SOAPContext ctx )

throws Exception
 {
 // what am i deserializing
..
 try
 {

System.out.println ("Inside Address Serializer marshall ") ;

nsStack.pushScope();
 SoapEncUtils.generateStructureHeader(inScopeEncStyle,
javaType, context,

sink, nsStack, xjmr);
 // rest
of logic here ..

..
 }

 // objectify
 public Bean objectify(String inScopeEncStyle, QName
elementType,

Node src, XMLJavaMappingRegistry xjmr, SOAPContext ctx)

throws Exception
 {
 samples.testbase.Address
target = null ;

 try
 {

Element root = (Element)src;

Element tempEl = DOMUtils.getFirstChildElement(root);

try

{

target =

(samples.testbase.Address)samples.testbase.Address.class.newInstance

();

}


// rest of logic here
 }
The XML deployment descriptor looks as follows..
isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment"

id="urn:AddressFetcher2">
 isd:provider type="java"

scope="Session"

methods="getAddressFromName addEntry getAllListings putListings
>
 isd:java class="samples.testbase.AddressBook"
static="false"/>
 /isd:provider>
 isd:faultListener>org.apache.soap.server.DOMFaultListener/isd:faultListener
 isd:mappings>
 isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:x="urn:xml-soap-address-demo" qname="x:address"

javaType="samples.testbase.BaseType"

java2XMLClassName="samples.testbase.BaseSerializer"

xml2JavaClassName="samples.testbase.BaseSerializer"/>
 /isd:mappings>
/isd:service>

I also tweaked Address , Phone etc to extend samples.testbase.BaseType
, hoping that the same BaseSerializer would get called when either Phone
/ Address needed
to be marshalled / unmarshalled . Somehow Apache seems to be unable
to recognize this relationship and throws the followign exception .
Inside ABProxy.addEntry():Purdue Boilermaker
Exception in thread "main" [SOAPException: faultCode=SOAP-ENV:Client;
msg=No Ser
ializer found to serialize a 'samples.testbase.Address' using encoding
style 'ht
tp://schemas.xmlsoap.org/soap/encoding/'.; targetException=java.lang.IllegalArgumentException:
No Serializer found to serialize a 'samples.testbase.Address' usi
ng encoding style 'http://schemas.xmlsoap.org/soap/encoding/'.]
 at org.apache.soap.transport.http.SOAPHTTPConnection.send(SOAPHTTPConnec
tion.java:324)
 at org.apache.soap.rpc.Call.invoke(Call.java:205)
 at samples.testbase.AddressBookProxy.addEntry(AddressBookProxy.java:132)
 at samples.testbase.Main.doit(Main.java:91)
 at samples.testbase.Main.main(Main.java:133)

Has anyone tried something like this before and got it to work ?
Thanks -
Raghavan