JAX-RPC: Exception
Hello there
I am using currently SUN's Webservice Development Kit 1.4 and try to realise a JAX-RPC "rpc/encoded" webservice.
My applicatio is currently running if I am using a static client (stubs geenerated by wscompile). If am going forward to use a dynamic proxy client, I am getting a strange exception during the deserialization of the xml data on the client: "trailing block elements must have an id attribute". See also stack trace at the end of the messsage.
As far as I understand is that it must somewthing be with the "ArrayList" or arrays which I am using in my JavaBean which I sent from the server to the client. Here my extract from my JavaBean:
public class Article
long id;
Date date;
String category;
String title="";
String lead="";
List texts;
}If I am taking out the member "List texts" then it will work correctly. The list contains only Strings. I tried also to use String[] array, but this didn't help either.
So here, my questions perhaps someone has some ideas what I did wrong.
- Why does it work with the stastic client but not with the dynamic proxy?
- Does anybody know an example on the net where in JavaBeans Lists or Arrays has been used?
- Anybody an idea why this error appears? Did I something wrong?
Thank you in advance
Mark Egloff
trailing block elements must have an id attribute
at com.sun.xml.rpc.encoding.SOAPDeserializationContext.deserializeMultiRefObjects(SOAPDeserializationContext.java:81)
at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:226)
at com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:80)
at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:489)
at com.sun.xml.rpc.client.dii.CallInvocationHandler.doCall(CallInvocationHandler.java:122)
at com.sun.xml.rpc.client.dii.CallInvocationHandler.invoke(CallInvocationHandler.java:86)
at $Proxy0.getArticle(Unknown Source)
at tagesanzeiger.client.ManagerDynamicClient.main(ManagerDynamicClient.java:43)
Thanks for your answer... regarding the support of "List" Types, you can get a list of supportet types from here http://java.sun.com/webservices/docs/1.3/tutorial/doc/JAXRPC2.html#wp79865 As you see "list" is supported. The problem for me is that I not use directly the list as parameter from the interface, rather than this it is used "internally" in my JavaBean. I found how to declare additional types here:https://jax-rpc.dev.java.net/whitepaper/1.1/index-part1.html#3.5.1 i.e. in your config-interface.xml for the wscompile server:
<typeMappingRegistry>
<additionalTypes>
<class name="tagesanzeiger.data.Media"/>
</additionalTypes>
</typeMappingRegistry>This works for the serialization later on the serverside, but the client then claims that it has no serializer. I have read somewehere that the client also supports declarative serialization of custom types, bt I did not find any example. I tried also prorgrammatically, here a hint:
http://users.skynet.be/pascalbotte/rcx-ws-doc/seiadvanced.htm
But there is no full example of custom serializer, so I tried to use the sun serializer:
com.sun.xml.rpc.encoding.ValueTypeSerializer
com.sun.xml.rpc.encoding.ObjectArraySerializerbut this ended in a NullPointerException.....
- so has anybody out there a working example with complex types in a JavaBean?
- has anyone an example of customserializer.?
Regarding books, I have one from the Sun " Java Web Services Architecture" and one from Wiley "Developing Java Web Services", but both do not show how to use the cutom serializers nor declarive options at the client side....So I hope somenone has somewhere a working example...please...
Thanks
Mark
Similar Messages
-
Incorrect faultstring for checked exception from JAX-RPC Sun App server 8.1
I am trying to throw a checked exception in a web service. The checked exception object has a constructor that takes a single custom bean java class argument. It also has a get/setter for that argument .
Here's the exception class:
package com.innovativ.esp.websvc;
public class ValidationException extends Exception implements java.io.Serializable{
private Test test;
public ValidationException(Test test) {
super("from testb set ");
this.test = test;
public Test getTest() {
return this.test;
public void setTest(Test test) {
this.test = test;
The SAOP message for fault is shown as below:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns0="urn:Service/types">
<env:Body>
<env:Fault xsi:type="env:Fault">
<faultcode>env:Server</faultcode>
<faultstring>com.innovativ.esp.websvc.ValidationException</faultstring>
<detail><ns0:ValidationException><message>from testb set </message></ns0:ValidationException>
</detail>
</env:Fault>
</env:Body>
</env:Envelope>
The server side JAX-RPC is not sending the "Test" object in the detail part...
Any idea why it's not including the "Test" in message.
Thank you for any help....Here's the WSDL for the service :
<?xml version="1.0" encoding="UTF-8"?><definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:Service/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns2="urn:Service/types" name="Service" targetNamespace="urn:Service/wsdl">
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:Service/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/" targetNamespace="urn:Service/types">
<complexType name="sayHelloResponse">
<sequence>
<element name="result" type="string" nillable="true"/></sequence></complexType>
<complexType name="ValidationException">
<sequence>
<element name="test" type="tns:Test" nillable="true"/></sequence></complexType>
<complexType name="Test">
<sequence>
<element name="prop" type="string" nillable="true"/></sequence></complexType>
<element name="sayHello" type="tns:sayHello"/>
<element name="sayHelloResponse" type="tns:sayHelloResponse"/>
<element name="ValidationException" type="tns:ValidationException"/></schema></types>
<message name="IFServiceWS_sayHello">
<part name="parameters" element="ns2:sayHello"/></message>
<message name="IFServiceWS_sayHelloResponse">
<part name="result" element="ns2:sayHelloResponse"/></message>
<message name="ValidationException">
<part name="ValidationException" element="ns2:ValidationException"/></message>
<portType name="IFServiceWS">
<operation name="sayHello">
<input message="tns:IFServiceWS_sayHello"/>
<output message="tns:IFServiceWS_sayHelloResponse"/>
<fault name="ValidationException" message="tns:ValidationException"/></operation></portType>
<binding name="IFServiceWSBinding" type="tns:IFServiceWS">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="sayHello">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/></input>
<output>
<soap:body use="literal"/></output>
<fault name="ValidationException">
<soap:fault name="ValidationException" use="literal"/></fault></operation></binding>
<service name="Service">
<port name="IFServiceWSPort" binding="tns:IFServiceWSBinding">
<soap:address location="http://localhost:5050/ESP/Service" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/></port></service>
</definitions> -
JAX-RPC: restrictions on service exception field types?
When I define a service-specific exception type that has String fields only, it works fine. But if the exception class has an int field, xrpcc complains. It also fails if I change the field to Integer.
Since JAX-RPC supports both int and Integer as operation argument and return types, I expected exceptions to be able to use these types as well. Are there restrictions on exception fields types?
Here is the class with the int fields and the xrpcc errors it generates:
public class InvalidRecordingIdException extends Exception {
private int id;
public InvalidRecordingIdException() {
super();
public InvalidRecordingIdException(int id) {
this.id = id;
public int getId() {
return id;
xrpcc-server:
[echo] Running xrpcc for the server:
[exec] rain\RainOrder_orderRecording_Fault_SOAPSerializer.java:69:
Method serialize(int, javax.xml.namespace.QName,
null, com.sun.xml.rpc.streaming.XMLWriter,
com.sun.xml.rpc.encoding.SOAPSerializationContext)
not found in interface com.sun.xml.rpc.encoding.CombinedSerializer.
[exec] myns2__int__int_Int_Serializer_Serializer.serialize(((
rain.InvalidRecordingIdException)detail).getId(),
ns1_InvalidRecordingIdException_QNAME, null, writer, context);
[exec] ^
[exec] rain\RainOrder_orderRecording_Fault_SOAPBuilder.java:32:
Invalid cast from java.lang.Object to int.
[exec] instance.setDetail(new rain.InvalidRecordingIdException((int)detail));
[exec] ^
[exec] 2 errors
...Here's the error for the Integer field in an exception:
xrpcc-server:
[echo] Running xrpcc for the server:
[exec] error: generator error: generator error: java.lang.ClassCastException:
com.sun.xml.rpc.processor.model.soap.SOAPSimpleType
[exec] 1 errorYou have run into a bug that will be fixed in the next release of the JWSDP dealing with Exceptions with only one member that is a primitive type. However, changing that member to a boxed (Integer) representation should work, what version of JAXRPC are you using? As a work around you should be able to eliminate the problem by adding one more member to the Exception using a different type.
Thank you for your interest in JAXRPC -
Exception when running a JAX-WS client against a JAX-RPC service
I have a JAX-WS client invoking a JAX-RPC web service on Weblogic 10.3. The service was originally built for Weblogic 9.2, it's been rebuilt and runs fine on 10.3.
Some operations work fine, but invoking one operation results in the following exception:
at secsvc.client.GetRolesForUserInApplicationResponse$JaxbAccessorF_role.get(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.reflect.NullSafeAccessor.get(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.reflect.Accessor.getUnadapted(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$7.get(Unknown Source)
at com.sun.xml.internal.ws.client.sei.ResponseBuilder$DocLit$PartBuilder.readResponse(Unknown Source)
at com.sun.xml.internal.ws.client.sei.ResponseBuilder$DocLit.readResponse(Unknown Source)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source)
at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(Unknown Source)
at $Proxy29.getRolesForUserInApplication(Unknown Source)
This operation works fine if invoked by an RPC client.
Any idea what's going on?
MikeyHi Jitu,
I changed the wsdl. And so I don�t get the warning anymore. My Webservice also runs well, now. Thanks anyway for the reply.
There is a nice tech article on the sun network, which solved my problem. The basic idea is to split the wsdl into 2 wsdl documents. one containing all the porttypes messages and so on. And the other wsdl contains the binding and service elements.
If you are interested check out this link:
http://java.sun.com/developer/technicalArticles/xml/jaxrpcpatterns/index2.html
thanks,
footman -
Hi everyone!
I’m really new to web services.
I’m getting a *500 internal server error* while deploying my JAX-RPC web service Proxy to an Oracle AS, in an OC4J, v. 10.1.3.5.0.
Running my client from my development environment (*jdeveloper 10g, 10.1.3.5.0*) everything functions correctly: from jdeveloper I can contact and use the web service defined by the following endpoint: https://www.medialibrary.it/services/federaMLOL.asmx?WSDL
I created a "try_ws_client.jsp" file that runs correctly from my local development environment jdeveloper (that uses an embedded oc4j, v. 10.1.3.5.0) but fails when run from the test server (Oracle AS, in an OC4J, v. 10.1.3.5.0), getting, as I mentioned a 500 internal server error, a white page in IE but with FF the message says: The’s an error in the servlet .....
Here's how I created the ws proxy and how I’m using it to consume the ws I mentioned.
1. I used the jdeveloper “Create Web Service Proxy” wizard (File > New > Business Tier > Web Services > Web Service Prox) and in the WSDL document URL I put: https://www.medialibrary.it/services/federaMLOL.asmx?WSDL
2. The operation ended without adding nothing to the web.xml file and creating the proxy files. One of them is: FederaMLOLSoapClient.java that have the WS exposed methods (es: public boolean createUser(String) ) + a “main” method with the example how to use this client to consume the WS.
public static void main(String[] args) {
try {
it.reggiocity.provincia.mlol.proxy.FederaMLOLSoapClient myPort = new it.reggiocity.provincia.mlol.proxy.FederaMLOLSoapClient();
System.out.println("calling " + myPort.getEndpoint());
// Add your own code here
} catch (Exception ex) {
ex.printStackTrace();
3. In FederaMLOLSoapClient.java I’ve create the method "tyIt":
public String tryIt(String username) {
try {
it.reggiocity.provincia.mlol.proxy.FederaMLOLSoapClient myPort = new it.reggiocity.provincia.mlol.proxy.FederaMLOLSoapClient();
if(myPort.createUser(String username)) {
return “O.K”;
} else {
return “K.O”;
} catch (Exception ex) {
// logs error
4. I created my try_ws_client.jsp file that creates FederaMLOLSoapClient object and calls the tryIt method, printing the “OK” or “KO” message.
<%@ page import="it.reggiocity.provincia.biblioreggiane.*"%>
<%
String message = "";
FederaMLOLSoapClient obj= new FederaMLOLSoapClient( );
message = obj.tryIt(“AAAAAA70R10H226H”);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page contentType="text/html;charset=windows-1252"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
<title>prova</title>
</head>
<body><%=message%></body>
</html>
The situation is:
My try_ws_client.jsp runs correctly from my jdeveloper and the user is created while creating app.ear and deploying it to my Oracle AS/OC4J as mentioned above, I get a 500 Internal Server Error.
Any idea to find a solution to this problem?
Please help.
Take care.
John M.Hi,
you want to build the Web Service, or you want to consume the Service as a client? If the latter, Web client (ADF?) or Java client?
Frank -
WLS 8.1 JAX-RPC stubs and SSL
I am part of an industry effort to assess WS interop. We have created a common
WSDL that will be implemented in WAS, .NET and WLS 8.1. As part of this effort,
we are also trying to use two-way SSL authentication. However, I have not found
a way to configure WLS 8.1 JAX-RPC Stubs (generated using clientgen utilities)
to present the client certificates. I have a tried a couple of approaches but
neither of them works with the stubs.
First, I tried using the SSLAdapter (as explained in the "Programming Web Services")
documentation. Unfortunately, the service that I am trying to invoke has only
http binding and trying to invoke it using the SSLAdapter throws an exception
complaining that SSL can't be used on non-https binding.
I tried to try another approach. In this, I tried to invoke https: URL for the
web service instead of using the Adapter. However, in this case, I am getting
a peer certificate not presented exception. Everything that I have checked in
adding a client private key and trusted certificates utilize SSLSocketFactory
(& SSLContext) or HttpsURLConnection objects.
At this point, I have ran out of ideas on how to add SSL to the generated client
stubs to tell the generated StubImpl or ServiceImpl implementations to use a different
SocketFactory or connection. There may be some other global class or property
to set these things up, but I am not aware of those. The server side SSL configuration
seems to working fine, as the requests with SSL configuration of "Request Client
certificate but don't enforce it' seems to work fine.
Any responses and suggestions are greatly appreciated.
Thanks
RajDid you check out :
http://webservice.bea.com/
There is a 2 way SSL example here:
http://webservice.bea.com/SSL2way.zip
HTHs.
http://manojc.com
"Seshadri Rajagopal" <[email protected]> wrote in message
news:3ec24d41$[email protected]..
>
I am part of an industry effort to assess WS interop. We have created acommon
WSDL that will be implemented in WAS, .NET and WLS 8.1. As part of thiseffort,
we are also trying to use two-way SSL authentication. However, I have notfound
a way to configure WLS 8.1 JAX-RPC Stubs (generated using clientgenutilities)
to present the client certificates. I have a tried a couple of approachesbut
neither of them works with the stubs.
First, I tried using the SSLAdapter (as explained in the "Programming WebServices")
documentation. Unfortunately, the service that I am trying to invoke hasonly
http binding and trying to invoke it using the SSLAdapter throws anexception
complaining that SSL can't be used on non-https binding.
I tried to try another approach. In this, I tried to invoke https: URL forthe
web service instead of using the Adapter. However, in this case, I amgetting
a peer certificate not presented exception. Everything that I have checkedin
adding a client private key and trusted certificates utilizeSSLSocketFactory
(& SSLContext) or HttpsURLConnection objects.
At this point, I have ran out of ideas on how to add SSL to the generatedclient
stubs to tell the generated StubImpl or ServiceImpl implementations to usea different
SocketFactory or connection. There may be some other global class orproperty
to set these things up, but I am not aware of those. The server side SSLconfiguration
seems to working fine, as the requests with SSL configuration of "RequestClient
certificate but don't enforce it' seems to work fine.
Any responses and suggestions are greatly appreciated.
Thanks
Raj -
503 error code when trying to access a weblogic jax-rpc webservice
I'm going crazy on a webservice issue with Weblogic server 10.2.
I have a DocumentRepository webservice deployed and I generated a JAX-RPC library based on its WSDL.
Now I'm trying to access this webservice from Spring in a desktop application with the following bean declaration:
<bean id="documentRepository" class="eu.europa.ec.rdg.efp.services.document.v1_00.DocumentRepository_Impl">
<constructor-arg value="http://myserver.mycompany.com:7021/efpServices/DocumentRepository?WSDL" />
</bean>
But when the Spring application context initializes, after a few minutes, I get the following exception:
javax.xml.rpc.ServiceException: Failed to parse WSDL http://myserver.mycompany.com:7021/efpServices/DocumentRepository?WSDL weblogic.wsee.wsdl.WsdlException: Failed to read wsdl file from url due to -- java.io.IOException: Server returned HTTP response code: 503 for URL: http://myserver.mycompany.com:7021/efpServices/DocumentRepository?WSDL
+ at weblogic.wsee.jaxrpc.ServiceImpl.throwServiceException(ServiceImpl.java:174)+
+ at weblogic.wsee.jaxrpc.ServiceImpl.loadWsdlDefinition(ServiceImpl.java:485)+
+ at weblogic.wsee.jaxrpc.ServiceImpl.<init>(ServiceImpl.java:119)+
+ at eu.europa.ec.rdg.efp.services.document.v1_00.DocumentRepository_Impl.<init>(Unknown Source)+
+ at eu.europa.ec.rdg.efp.services.document.v1_00.DocumentRepository_Impl.<init>(Unknown Source)+
+ at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)+
+ at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)+
+ at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)+
+ at java.lang.reflect.Constructor.newInstance(Constructor.java:513)+
+ at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:100)+
+ ... 35 more+
Caused by: weblogic.wsee.wsdl.WsdlException: Failed to read wsdl file from url due to -- java.io.IOException: Server returned HTTP response code: 503 for URL: http://myserver.mycompany.com:7021/efpServices/DocumentRepository?WSDL
+ at weblogic.wsee.wsdl.WsdlReader.getDocument(WsdlReader.java:313)+
+ at weblogic.wsee.wsdl.WsdlDefinitions.parse(WsdlDefinitions.java:403)+
+ at weblogic.wsee.wsdl.WsdlDefinitions.parse(WsdlDefinitions.java:389)+
+ at weblogic.wsee.wsdl.WsdlFactory.parse(WsdlFactory.java:79)+
+ at weblogic.wsee.wsdl.WsdlFactory.parse(WsdlFactory.java:66)+
+ at weblogic.wsee.jaxrpc.ServiceImpl.loadWsdlDefinition(ServiceImpl.java:476)+
+ ... 43 more+
Caused by: java.io.IOException: Server returned HTTP response code: 503 for URL: http://myserver.mycompany.com:7021/efpServices/DocumentRepository?WSDL
+ at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1305)+
+ at weblogic.wsee.util.is.InputSourceUtil.loadURL(InputSourceUtil.java:100)+
+ at weblogic.wsee.util.dom.DOMParser.getWebLogicDocumentImpl(DOMParser.java:118)+
+ at weblogic.wsee.util.dom.DOMParser.getDocument(DOMParser.java:65)+
+ at weblogic.wsee.wsdl.WsdlReader.getDocument(WsdlReader.java:311)+
+ ... 48 more+
Yet, I can see the WSDL in my browser when I go to http://myserver.mycompany.com:7021/efpServices/DocumentRepository?WSDL
Now it looks a lot like a proxy issue, which is possible because I'm behind a proxy, and I had to set the following command-line parameters in order to access remote HTTP resources before the spring application context is initialized:
-DproxySet=true -DproxyHost=<my proxy IP> -DproxyPort=8012
And I authenticate to my proxy using the following code, once again before the Spring application context is initialized:
Authenticator.setDefault(new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(<my login>, <my password>);
Yet, those settings seem to have absolutely no effect on how the webservice client is loading the WSDL.
So my question is the following: is it possible to specify a proxy to be used by the webservice client class to load the WSDL? If yes, how?
On the other hand, if it was a proxy issue, then I guess the webservice client couldn't reach the server and I would get a connection timeout or something. But here I get a response, even though it's a 503 error. Any other idea where my exception comes from?
I'm really desperate here. I've tried to ask our corporate weblogic support but they couldn't reproduce my issue. I've been fighting with this for weeks. Please help!Please, take a look at https://blogs.oracle.com/proactivesupportWCC/entry/clustering_and_high_availability_for (and contact the support group as advised)
-
JAX RPC extension: Problem with document/literal and MyType[]
Hi,
I have installed the JAX RPC extension and want to generate a stub from my WSDL file. The WSDL describes a document/literal binding.
Problem:
A webservice server method like:
public wineshop.model.common.SimpleProducer[] getSimpleProducerList() throws RemoteException;
is translated into a stub method like:
public UnknownType getSimpleProducerList() throws Exception {..}
Is an array of own types with the binding style "document/literal" not supported in JAX RPC 1.4 or is it just a bug?
The WSDL file is generated by JAX RPC 1.4.
I have installed JWSDP-1.5 and generated a stub with wscompile from the WSDL file. The generated stub has the correct method return type:
public wineshop.ws.client.SimpleProducer[] getSimpleProducerList()
throws java.rmi.RemoteException
It there a workaround like replacing some JDev JARs with JWSDP-1.5 to solve the problem?
Any hints are welcome.
Thanks Markusrepost.....
-
Getting SOAPExceptionImpl while invoking JAX-RPC Service
Hi,
I am using Static Stub to invoke a service . Both the Client and and Service are deployed on same Tomcat. Service is quite simple that display the Greeting message but when I am calling a service it throws the following exception..
java.rmi.RemoteException : HTTP Transport Error: com.sun.xml.messaging.saaj.SOAPExceptionImpl;
Invalid Content-Type "text/html"
Any idea how to fix this issue ?
Thanks
AbdulI used tha JAX-RPC runtime jars that come with JSWDP and was able to sucessfully run the client on JDK1.3 environment. Is there a solution for JDK1.2 client?
-
How can I get the UserName in JAX-RPC?
The client is just as following:
import javax.xml.rpc.Call;
import javax.xml.rpc.Service;
import javax.xml.rpc.JAXRPCException;
import javax.xml.rpc.namespace.QName;
import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.ParameterMode;
public class ACTRPCClient {
private static String qnameService = "Hello";
private static String qnamePort = "Greeting";
private static String BODY_NAMESPACE_VALUE ="http://hello.org/wsdl";
private static String ENCODING_STYLE_PROPERTY ="javax.xml.rpc.encodingstyle.namespace.uri";
private static String NS_XSD ="http://www.w3.org/2001/XMLSchema";
private static String URI_ENCODING ="http://schemas.xmlsoap.org/soap/encoding/";
public ACTRPCClient() {
public static void main(String[] args) {
try {
String endpoint= "http://127.0.0.1:8080/SOAPListener/Hello";
ServiceFactory factory =ServiceFactory.newInstance();
Service service =factory.createService(new QName(qnameService));
QName port = new QName(qnamePort);
Call call = service.createCall();
call.setPortTypeName(port);
call.setTargetEndpointAddress(endpoint);
call.setProperty(Call.SOAPACTION_USE_PROPERTY, new Boolean(true));
call.setProperty(Call.SOAPACTION_URI_PROPERTY, "");
call.setProperty(ENCODING_STYLE_PROPERTY,URI_ENCODING);
//here I set the username and password
call.setProperty("javax.xml.rpc.security.auth.username","tomcat");
call.setProperty("javax.xml.rpc.security.auth.password","tomcat");
QName QNAME_TYPE_STRING = new QName(NS_XSD, "string");
call.setReturnType(QNAME_TYPE_STRING);
call.setOperationName(new QName (BODY_NAMESPACE_VALUE, "getHello"));
call.addParameter("Greeting", QNAME_TYPE_STRING, ParameterMode.PARAM_MODE_IN);
String[] params = { new String("Hello!") };
String result = (String)call.invoke(params);
System.out.println(result);
} catch (Exception ex) {
ex.printStackTrace();
On the server side,I wrote a my own servlet to receive the soap instead of the jax-rpc.But I can't get the username from the request.
for example,
String username;
username=request.getRemoteUser();
I noticed that in the api doc,it says when the user has not been authenticated the method getRemoteUser will return null.So I use the username "tomcat" ,password "tomcat "in the tomcat-
users.xml.But I still can't get the username,why?
Thanks for your help.From the Axis I find the problem,the username and password is stored in the headers of the http.
And now the jax-rpc only surpport basic authentication,we can get them by calling request.header("Authentication").Howerver,the infomation is encoded by Base64.We copy a module from the Axis to decode the infomation.That's it,but still thank your attention. -
JAX-RPC documentliteral with -model option problems in JWSDP 2.0
Hello,
I am trying to deploy a service generated with JAX-RPC. Howeverr when I write URL (http://localhost:8080/webservicedeployable/webservice001) in a browser I am getting message: 404 Not Found: Invalid request. Appending ?WSDL shows propers wsdl code, so endpoint URL is allright.. There is my config file delow:
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
<service name="webservice001"
targetNamespace="http://scdjws/webservices/wsdl"
typeNamespace="http://scdjws/webservices/types"
packageName="com.service001">
<interface name="service.MyServicePort" servantName="service.MyServiceImpl"/>
</service>
</configuration>I am using command:
wscompile -gen:server -f:documentliteral -s "C:\Documents and Settings\Michal\jbproject\mojservice\src\" -classpath WEB-INF/classes -d build -model webservice001.xml.gz config.xml -keepmy jaxrpc-ri.xml is:
<?xml version="1.0" encoding="utf-8"?>
<webServices xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/dd"
version="1.0"
targetNamespaceBase="http://java.sun.com/xml/ns/jax-rpc/wsi/wsdl"
typeNamespaceBase="http://java.sun.com/xml/ns/jax-rpc/wsi/types"
urlPatternBase="/ws">
<endpoint name="service001"
displayName="Service 001"
description="This is service001"
interface="service.MyServicePort"
implementation="service.MyServiceImpl"
model="/webservice001.xml.gz"/>
<endpointMapping endpointName="service001"
urlPattern="/webservice001"/>
</webServices>I am using Tomcat 5.5.16 and JWSDP 2.0.
Making a call to the service throws exception:
java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:8080/webservicedeployable/webservice001
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:791)
Thank you in advance for all suggestion.
MichalHi,
I reselved the problem by just copying the FastInfoset to the jaxrpc\lib directory (I am sure this should work in a different way).
Well, the next problem I am getting is that the "XMLStreamWriter" class cannot be found. This class is contained in jsr173_api.jar.
I guess my main question is the following:
Which projects are necessary to get this simple helloWorld example to work?
I did set the JWSDP_HOME varible. Is there another setting I have to make to have all necessary jar-files available and to be able to run the samples?
Could anybody point me to a tutorial that does not only show a few lines of code (as the HelloWorld sample in the JWSDP-Tutorial) but that would instead lead me through a step-by-step sample application that I write by myself and actually runs at the end? The example in the JWSDP-Tutorial uses all kinds of existing config files which are not explained.
Thanks for your help. -
How to pass XMLNode to JAX-RPc web service
I am new to web services using JAX-RPC.
Here is my problem. I need to pass Node object from org.w2c.dom.Node to webservice (using JAX-RPC) and return canonicalBytes back to client.
I know I cannot pass Node directly as a parameter to the method (checked Java Language Typed supported by JAX-RPC).
So to cheat the system, I put in this Node object into a vector and then passed this vector to web service.
Here is the exception:-
java.rmi.RemoteException: serialization error: no serializer is registered for (class oracle.xml.parser.v2.XMLElement, null); nested exception is:
serialization error: no serializer is registered for (class oracle.xml.parser.v2.XMLElement, null)
at com.peppercoin.webservice.security.ISignatureVerification_Stub.getCanonicalBytes(ISignatureVerification_Stub.java:77)
at HelloClient.main(HelloClient.java:29)
Caused by: serialization error: no serializer is registered for (class oracle.xml.parser.v2.XMLElement, null)
at com.sun.xml.rpc.encoding.DynamicSerializer.getSerializerForObject(DynamicSerializer.java:69)
at com.sun.xml.rpc.encoding.DynamicSerializer.serialize(DynamicSerializer.java:52)
at com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.serialize(ReferenceableSerializerImpl.java:59)
at com.sun.xml.rpc.encoding.soap.CollectionSerializer.serializeArrayElements(CollectionSerializer.java:72)
at com.sun.xml.rpc.encoding.soap.CollectionSerializer.serializeArrayInstance(CollectionSerializer.java:55)
at com.sun.xml.rpc.encoding.soap.CollectionSerializerBase.serialize(CollectionSerializerBase.java:98)
at com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.serialize(ReferenceableSerializerImpl.java:59)
at com.peppercoin.webservice.security.ISignatureVerification_getCanonicalBytes_RequestStruct_SOAPSerializer.doSerializeInstance(ISignatureVerification_getCanonicalBytes_RequestStruct_SOAPSerializer.java:62)
at com.sun.xml.rpc.encoding.ObjectSerializerBase.serialize(ObjectSerializerBase.java:100)
at com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.serialize(ReferenceableSerializerImpl.java:59)
at com.sun.xml.rpc.client.StreamingSender._writeRequest(StreamingSender.java:441)
at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:63)
at com.peppercoin.webservice.security.ISignatureVerification_Stub.getCanonicalBytes(ISignatureVerification_Stub.java:60)
... 1 more
Every works great as long as i put in strings in Vector.
Is there a work around or did i miss anything, Please help
I am using Oracle Parser
Thanks
Sagar MalisettiYou can't "cheat the system" this way. The serializer for Vector is trying to find a serializer for the elements in the Vector instance that it received. So, it is trying to find a serializer for whatever is the the runtime type of your org.w3c.dom.Node. When it can't find such a serializer in the TypeMappingRegistry, it throws the exception.
-
JAX-RPC - dynamic wsdl - non-built-in data types
I thought my recent exp with developing a JAX-RPC client using a dynamic wsdl to communicate to a non-weblogic Web Service might help somebody out there. :-)
JAX-RPC Mechanism in Weblogic for dynamic_wsdl seems to work only with built-in data types. Weblogic also supports non-built-in data types, but you need to do some extra work! For the user-defined objects, you need to generate their types and register them.
Note: The samples given in Weblogic 8.1 do not use non-built-in data types!
Make sure you use the ant task "autotype" in your build.xml to generate the appropriate types (objects to support java-xml and xml-java converstion), types.xml from the wsdl. Register the types.xml file in your calling client code.
If you do not use register the types for the user-defined classes used in the web services method signatures, then you are likely to get the foll. exception.
javax.xml.soap.SOAPException: failed to serialize interface javax.xml.soap.SOAPElementw
eblogic.xml.schema.binding.SerializationException: mapping lookup failure. class=interface javax.xml
.soap.SOAPElement class context=TypedClassContext{schemaType=['http://svcVodafonePooled.wsdlgen.jipi
lot.vodafone.com']:getStock}
C:\Tutorial\WS\dynamic_wsdl>ant run
Buildfile: build.xml
run:
[java] Creating the service...
[java] Creating the call...
[java] invoking the call....
[java] javax.xml.rpc.JAXRPCException: failed to invoke operation 'getStock' due to an error in
the soap layer (SAAJ); nested exception is: Message[ failed to serialize interface javax.xml.soap.SO
APElementweblogic.xml.schema.binding.SerializationException: mapping lookup failure. class=interface
javax.xml.soap.SOAPElement class context=TypedClassContext{schemaType=['http://svcVodafonePooled.ws
dlgen.jipilot.vodafone.com']:getStock}]StackTrace[
[java] javax.xml.soap.SOAPException: failed to serialize interface javax.xml.soap.SOAPElementw
eblogic.xml.schema.binding.SerializationException: mapping lookup failure. class=interface javax.xml
.soap.SOAPElement class context=TypedClassContext{schemaType=['http://svcVodafonePooled.wsdlgen.jipi
lot.vodafone.com']:getStock}
[java] at weblogic.webservice.core.DefaultPart.invokeSerializer(DefaultPart.java:328)
[java] at weblogic.webservice.core.DefaultPart.toXML(DefaultPart.java:297)
[java] at weblogic.webservice.core.DefaultMessage.toXML(DefaultMessage.java:645)
[java] at weblogic.webservice.core.ClientDispatcher.send(ClientDispatcher.java:206)
[java] at weblogic.webservice.core.ClientDispatcher.dispatch(ClientDispatcher.java:143)
[java] at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:457)
[java] at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:443)
[java] at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:558)
[java] at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:411)
[java] at Main.main(Main.java:61)
[java] Caused by: weblogic.xml.schema.binding.SerializationException: mapping lookup failure. c
lass=interface javax.xml.soap.SOAPElement class context=TypedClassContext{schemaType=['http://svcVod
afonePooled.wsdlgen.jipilot.vodafone.com']:getStock}
[java] at weblogic.xml.schema.binding.RuntimeUtils.lookup_serializer(RuntimeUtils.java:151)
[java] at weblogic.xml.schema.binding.RuntimeUtils.invoke_serializer(RuntimeUtils.java:187)
[java] at weblogic.xml.schema.binding.RuntimeUtils.invoke_serializer(RuntimeUtils.java:174)
[java] at weblogic.webservice.core.DefaultPart.invokeSerializer(DefaultPart.java:324)
[java] ... 9 more
[java] ]
[java] at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:578)
[java] at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:411)
[java] at Main.main(Main.java:61)
[java] Exception in thread "main"
[java] Java Result: 1The foll. code worked fine for me in Weblogic 8.1 SP3, on Windows 2000.
Note: the 2 important lines of code:
TypeMappingRegistry registry service.getTypeMappingRegistry();
registry.registerDefault(new DefaultTypeMapping("types.xml"));
package auth;
import java.net.URL;
import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.Service;
import javax.xml.rpc.Call;
import javax.xml.rpc.ParameterMode;
import javax.xml.namespace.QName;
import javax.xml.rpc.encoding.TypeMapping;
import javax.xml.rpc.encoding.TypeMappingRegistry;
import weblogic.webservice.core.encoding.stream.SOAPElementCodec;
import javax.xml.rpc.encoding.*;
import weblogic.webservice.encoding.DefaultTypeMapping;
public class DClient1 {
static private void print(String msg) {
System.out.println("DClient1: " + msg);
public static void main(String[] argv) throws Exception {
System.setProperty("javax.xml.soap.MessageFactory", "weblogic.webservice.core.soap.MessageFactoryImpl");
System.setProperty( "javax.xml.rpc.ServiceFactory", "weblogic.webservice.core.rpc.ServiceFactoryImpl");
ServiceFactory factory = ServiceFactory.newInstance();
String targetNamespace = "http://www.vishwa.com/amazingworld";
QName serviceName = new QName(targetNamespace, "GeminiPasswordService");
QName portName = new QName(targetNamespace, "GeminiPasswordServicePort");
QName operationName = new QName("", "checkPassword");
URL wsdlLocation = new URL("http://localhost:7001/GeminiPasswordService/GeminiPasswordService?WSDL");
print("Creating the service...");
Service service = factory.createService(wsdlLocation, serviceName);
print("Creating the call...");
Call call = service.createCall(portName, operationName);
TypeMappingRegistry registry = service.getTypeMappingRegistry();
registry.registerDefault(new DefaultTypeMapping("types.xml"));
print("invoking the call....");
Object[] inParams = new Object[2];
inParams[0] = "clark1";
inParams[1] = "kent1";
Object result = call.invoke(inParams);
print("Client return value: = " + result.toString());
QName operationName1 = new QName("", "getBook");
print("Creating the call...");
Call call1 = service.createCall(portName, operationName1);
print("invoking the call....");
Name n = new Name();
n.setFirstname("Walker");
n.setAge(50);
Object[] inParams1 = new Object[1];
inParams1[0] = n;
Book b = (Book) call1.invoke(inParams1);
print("author: " + b.getAuthor());
print("money: " + b.getMoney());
} -
WL 8.1 and JAX-RPC 1.1 (JWSDP 1.3) problems
I have developed several web services using Sun's JWSDP 1.3. It deploys just fine
in WebLogic 8.1 and I can view the WSDL, etc. with no problems. I have written
a simple test client to call the service and this is where I get errors.
The server error is:
Apr 14, 2004 9:43:00 AM com.sun.xml.rpc.server.http.JAXRPCServletDelegate doPost
SEVERE: caught throwable
java.lang.NoSuchMethodError: javax.xml.soap.SOAPElement.normalize()V
at com.sun.xml.rpc.streaming.XmlTreeReader.parse(XmlTreeReader.java:129)
at com.sun.xml.rpc.streaming.XmlTreeReader.next(XmlTreeReader.java:100)
at com.sun.xml.rpc.streaming.XMLReaderBase.nextContent(XMLReaderBase.jav
a:24)
at com.sun.xml.rpc.streaming.XMLReaderBase.nextElementContent(XMLReaderB
ase.java:42)
at com.sun.xml.rpc.server.StreamingHandler.handle(StreamingHandler.java:
108)
at com.sun.xml.rpc.server.http.JAXRPCServletDelegate.doPost(JAXRPCServle
tDelegate.java:316)
at com.sun.xml.rpc.server.http.JAXRPCServlet.doPost(JAXRPCServlet.java:6
9)
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:971)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:402)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:305)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run(WebAppServletContext.java:6350)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
rvletContext.java:3635)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
pl.java:2585)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
The client error is:
java.rmi.ServerException: JAXRPC.JAXRPCSERVLET.28: Missing port information
at com.sun.xml.rpc.client.StreamingSender._raiseFault(StreamingSender.java:372)
at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:224)
at com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:61)
at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:339)
at com.sun.xml.rpc.client.dii.CallInvocationHandler.doCall(CallInvocationHandler.java:99)
at com.sun.xml.rpc.client.dii.CallInvocationHandler.invoke(CallInvocationHandler.java:71)
at $Proxy0.getWorkList(Unknown Source)
at com.workpoint.sample.client.webservices.WorkItemServiceClient.testGetWorkList(WorkItemServiceClient.java:124)
at com.workpoint.sample.client.webservices.WorkItemServiceClient.main(WorkItemServiceClient.java:48)
I have a WAR for the web services that also includes the JAX-RPC, SAAJ, and other
JARs. This WAR is bundled in an EAR with our other applications. Like I said,
everything deploys just fine, it's at runtime the web services don't work. This
configuration (and test client) works with Tomcat, JBoss, OC4J, and WebSphere
with no problems. I've tried a bunch of different things and can't figure out
why it doesn't work with WebLogic.
Thanks for any help on this.
MikeDavid,
I tried your prefer-web-inf-classes and the web services deploy, but i get an
error trying to view the wsdl. sounds like trying to get jax-rpc 1.1 web services
running in weblogic is going to be nothing but problems. anyways, here's the error
i get:
Error 500--Internal Server Error
javax.servlet.ServletException: JAXRPC.JAXRPCSERVLET.35: failed to create a template
object
at com.sun.xml.rpc.server.http.JAXRPCServletDelegate.doGetDefault(JAXRPCServletDelegate.java:258)
at com.sun.xml.rpc.server.http.JAXRPCServletDelegate.doGet(JAXRPCServletDelegate.java:102)
at com.sun.xml.rpc.server.http.JAXRPCServlet.doGet(JAXRPCServlet.java:76)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:971)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:402)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6350)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3635)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
"David Karr" <[email protected]> wrote:
>
This is happening because WLS already contains the JWSDP classes, but
an older
release. The jars in your web applications are not used if other jars
containing
those classes are found first.
Technically, you should be able to set the "prefer-web-inf-classes" parameter
in your weblogic.xml file to make it "prefer" classes found in WEB-INF.
There's
one not very well documented aspect of this that would be a problem for
trying
to override particular classes, but it shouldn't be a problem for your
case. The
issue is that the ClassLoader that ends up being used if you set "prefer-web-inf-classes"
(it might not be a different ClassLoader, but just imbued with modified
behavior)
actually does not allow classes in certain packages to be overridden.
I can't
remember all of the paths, but I do know that anything in "javax.xml.*"
is specifically
ALLOWED to be overridden.
However, when I went down this path a while ago, I ran into other more
obscure
exceptions that i was unable to figure out. I ended up concluding that
using the
JWSDP included with WLS 8.1 was the path of least resistance. I never
did try
altering the global classpath of the appserver to include the jwsdp 1.3
jars to
override the classes in weblogic. This is another alternate approach,
but I have
a feeling that this will cause other unexpected problems.
"Mike" <[email protected]> wrote:
I have developed several web services using Sun's JWSDP 1.3. It deploys
just fine
in WebLogic 8.1 and I can view the WSDL, etc. with no problems. I have
written
a simple test client to call the service and this is where I get errors.
The server error is:
Apr 14, 2004 9:43:00 AM com.sun.xml.rpc.server.http.JAXRPCServletDelegate
doPost
SEVERE: caught throwable
java.lang.NoSuchMethodError: javax.xml.soap.SOAPElement.normalize()V
at com.sun.xml.rpc.streaming.XmlTreeReader.parse(XmlTreeReader.java:129)
at com.sun.xml.rpc.streaming.XmlTreeReader.next(XmlTreeReader.java:100)
at com.sun.xml.rpc.streaming.XMLReaderBase.nextContent(XMLReaderBase.jav
a:24)
at com.sun.xml.rpc.streaming.XMLReaderBase.nextElementContent(XMLReaderB
ase.java:42)
at com.sun.xml.rpc.server.StreamingHandler.handle(StreamingHandler.java:
108)
at com.sun.xml.rpc.server.http.JAXRPCServletDelegate.doPost(JAXRPCServle
tDelegate.java:316)
at com.sun.xml.rpc.server.http.JAXRPCServlet.doPost(JAXRPCServlet.java:6
9)
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:971)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:402)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:305)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run(WebAppServletContext.java:6350)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
rvletContext.java:3635)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
pl.java:2585)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
The client error is:
java.rmi.ServerException: JAXRPC.JAXRPCSERVLET.28: Missing port information
at com.sun.xml.rpc.client.StreamingSender._raiseFault(StreamingSender.java:372)
at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:224)
at com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:61)
at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:339)
at com.sun.xml.rpc.client.dii.CallInvocationHandler.doCall(CallInvocationHandler.java:99)
at com.sun.xml.rpc.client.dii.CallInvocationHandler.invoke(CallInvocationHandler.java:71)
at $Proxy0.getWorkList(Unknown Source)
at com.workpoint.sample.client.webservices.WorkItemServiceClient.testGetWorkList(WorkItemServiceClient.java:124)
at com.workpoint.sample.client.webservices.WorkItemServiceClient.main(WorkItemServiceClient.java:48)
I have a WAR for the web services that also includes the JAX-RPC, SAAJ,
and other
JARs. This WAR is bundled in an EAR with our other applications. Like
I said,
everything deploys just fine, it's at runtime the web services don't
work. This
configuration (and test client) works with Tomcat, JBoss, OC4J, andWebSphere
with no problems. I've tried a bunch of different things and can't figure
out
why it doesn't work with WebLogic.
Thanks for any help on this.
Mike -
JAX-RPC Client - java.rmi.RemoteException:/getPort best practices
We are working on java webservices(JAX-RPC style) and while consuming Java WebService sometime getting ‘Remote Exception’ .I have generated client side code with weblogic ant task “clientgen”.
1: Exception
java.rmi.RemoteException: SOAPFaultException - FaultCode [{http://schemas.xmlsoap.org/soap/envelope/}Server] FaultString [Failed to invoke end component {service implementation class name} (POJO), operation= {webmethode name}
-> Failed to invoke method
] FaultActor [null] Detail [<detail><java:string xmlns:java="java.io">java.lang.NullPointerException
</java:string></detail>]; nested exception is:
weblogic.wsee.jaxrpc.soapfault.WLSOAPFaultException: Failed to invoke end component {service implementation class name} (POJO), operation={webmethode name}
-> Failed to invoke method
{Package name}.ManagementPortType_Stub.createXXX(xxxPortType_Stub.java:37) // This line is clientgen generated code
{From this line its clear that clientgen generated code failed to get webservice port}
2: Following is our implementation to invoke webservice:
ManagementService service =
new ManagementService_Impl(“WSDL URL”)
ManagementPortType port = service.getManagerHTTPPort();
Port.getServiceName();
Our code is executing first two lines for every webservice request, and as per our observation these two lines (mark in bold) is taking long time to execute and due to this sometime gives ‘remote exception’ (when there is more request for web service consumption).
3: My questions:
1> Why does it take so long on initialization of service and port object?
2> Is there any problem if I share “port” object for multiple request?
3> what are the best practices in this type of implementation?
Help would be greatly appreciated !Hi,
Thanks for your reply.
My service is deployed and working fine.
NPE is due to {Package name}.ManagementPortType_Stub is null and code is executing createXXX() methode on it.
Anyway i cant do anaything here because this is a clientgen generated code.
Maybe you are looking for
-
IPhoto organization in iTunes? It IS supposed to be a LIBRARY you know.
When are we going to see some kind of multiple library function in iTunes similar to the way iPhoto is set up with "Events" organizing the photos. Having one gigantic list of songs that is the only way of viewing your main library (no playlists don't
-
Simble please tell me how can authoirize my new pc so I can have back my music for my itunes
Please can you authosize my coumbuter so I can have back on my itunes the music I had bought from you since I had my acount. The are albus that I would love to listening again.I have them in my lybrary but I can not listen to them because is asking t
-
Hi, I need some briefing about LIS DS...how are they delta enabled and whats the logic of setup table.when to fill and delete set up table. I filled set up table for QM with notification..it showed me 52 records posted but when i do extractor checker
-
How to play movie immediately?
I'd like to create a project with no theme--i.e., have my movie start up immediately (and loop). Is there a way to do this? If it matters, I'm exporting from iMovie- Thanks! Mark
-
Issue with Ai since upgrading to Yosemite 10.10
Since I installed OSX Yosemite 10.10 on my macbook pro, Ai won't open (error loading plugins: photoshopimport.aip) and Ps is glitchy. I've tried some of the fixes I found in the forum, but it still won't work. Any ideas??