Web Service attachement is returned in response body
Dears,
I have the following problem:
I created a web service that return attachement. When I tested the web service from SOAP UI utility, I found that the webservice return the attachement in both ways, as inline in the responce body and as an attachement to the responce but without adding the href to responce body.
Please advise how I can add the href and remove the attachement from responce body.
Regards,
fadi
Hi Surya,
Would you let us know from where you are calling web service and for what?
And if possible provide error log as screenshot or txt file. So that it will be easy to trace issue.
For gland your issue, go through below posts
Not able to execute MII Transaction as web service
Error calling BLS Transaction as Web service
Problem in generating wsdl ?
Create MII transaction & MII Web Service and consume them in ABAP
Regards,
Praveen Reddy
Similar Messages
-
Call thirty party java web service but always return null
hi
I call a java web service in my application visual studio 2008 c#, but always return NULL.
I used Tool Fiddler to monitor the traffic between my client and the web service server, it showed the return is not Null.
Here is my code, please see if anything I do wrong.
namespace CanOfficer_THQ_vs_IHQ.TestWebReferenceAppointment {
using System.Diagnostics;
using System.Web.Services;
using System.ComponentModel;
using System.Web.Services.Protocols;
using System;
using System.Xml.Serialization;
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="AppointmentServiceSoapBinding", Namespace="http://service.ips.salvationarmy.org/")]
public partial class AppointmentService : Microsoft.Web.Services3.WebServicesClientProtocol {
private System.Threading.SendOrPostCallback deleteAppOperationCompleted;
private System.Threading.SendOrPostCallback importAppOperationCompleted;
private System.Threading.SendOrPostCallback editAppOperationCompleted;
private bool useDefaultCredentialsSetExplicitly;
/// <remarks/>
public AppointmentService() {
this.Url = global::CanOfficer_THQ_vs_IHQ.Properties.Settings.Default.CanOfficer_THQ_vs_IHQ_TestWebReferenceAppointment_AppointmentService;
if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
this.UseDefaultCredentials = true;
this.useDefaultCredentialsSetExplicitly = false;
else {
this.useDefaultCredentialsSetExplicitly = true;
public new string Url {
get {
return base.Url;
set {
if ((((this.IsLocalFileSystemWebService(base.Url) == true)
&& (this.useDefaultCredentialsSetExplicitly == false))
&& (this.IsLocalFileSystemWebService(value) == false))) {
base.UseDefaultCredentials = false;
base.Url = value;
public new bool UseDefaultCredentials {
get {
return base.UseDefaultCredentials;
set {
base.UseDefaultCredentials = value;
this.useDefaultCredentialsSetExplicitly = true;
/// <remarks/>
public event deleteAppCompletedEventHandler deleteAppCompleted;
/// <remarks/>
public event importAppCompletedEventHandler importAppCompleted;
/// <remarks/>
public event editAppCompletedEventHandler editAppCompleted;
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute(
RequestNamespace="http://service.ips.salvationarmy.org/",
ResponseNamespace="http://service.ips.salvationarmy.org/",
Use=System.Web.Services.Description.SoapBindingUse.Encoded,
ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
[return: System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string deleteApp([System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] int id) {
object[] results = this.Invoke("deleteApp", new object[] {
id});
return ((string)(results[0]));
/// <remarks/>
public void deleteAppAsync(int id) {
this.deleteAppAsync(id, null);
/// <remarks/>
public void deleteAppAsync(int id, object userState) {
if ((this.deleteAppOperationCompleted == null)) {
this.deleteAppOperationCompleted = new System.Threading.SendOrPostCallback(this.OndeleteAppOperationCompleted);
this.InvokeAsync("deleteApp", new object[] {
id}, this.deleteAppOperationCompleted, userState);
private void OndeleteAppOperationCompleted(object arg) {
if ((this.deleteAppCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.deleteAppCompleted(this, new deleteAppCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute(
RequestNamespace="http://service.ips.salvationarmy.org/",
ResponseNamespace="http://service.ips.salvationarmy.org/",
Use=System.Web.Services.Description.SoapBindingUse.Encoded,
ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
[return: System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string importApp(
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] int person,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string name,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string territory,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string location,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] bool primary,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] Nullable<System.DateTime> start,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] Nullable<System.DateTime> end,
[System.Xml.Serialization.XmlElementAttribute("categories", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string[] categories) {
object[] results = this.Invoke("importApp", new object[] {
person,
name,
territory,
location,
primary,
start,
end,
categories});
return ((string)(results[0]));
/// <remarks/>
public void importAppAsync(int person, string name, string territory, string location, bool primary, Nullable<System.DateTime> start, Nullable<System.DateTime> end, string[] categories) {
this.importAppAsync(person, name, territory, location, primary, start, end, categories, null);
/// <remarks/>
public void importAppAsync(int person, string name, string territory, string location, bool primary, Nullable<System.DateTime> start, Nullable<System.DateTime> end, string[] categories, object userState) {
if ((this.importAppOperationCompleted == null)) {
this.importAppOperationCompleted = new System.Threading.SendOrPostCallback(this.OnimportAppOperationCompleted);
this.InvokeAsync("importApp", new object[] {
person,
name,
territory,
location,
primary,
start,
end,
categories}, this.importAppOperationCompleted, userState);
private void OnimportAppOperationCompleted(object arg) {
if ((this.importAppCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.importAppCompleted(this, new importAppCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute(
RequestNamespace="http://service.ips.salvationarmy.org/",
ResponseNamespace="http://service.ips.salvationarmy.org/",
Use=System.Web.Services.Description.SoapBindingUse.Encoded,
ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
[return: System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string editApp(
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] int id,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string name,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string territory,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string location,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] bool primary,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] Nullable<System.DateTime> start,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] Nullable<System.DateTime> end,
[System.Xml.Serialization.XmlElementAttribute("categories", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string[] categories) {
object[] results = this.Invoke("editApp", new object[] {
id,
name,
territory,
location,
primary,
start,
end,
categories});
return ((string)(results[0]));
/// <remarks/>
public void editAppAsync(int id, string name, string territory, string location, bool primary, Nullable<System.DateTime> start, Nullable<System.DateTime> end, string[] categories) {
this.editAppAsync(id, name, territory, location, primary, start, end, categories, null);
/// <remarks/>
public void editAppAsync(int id, string name, string territory, string location, bool primary, Nullable<System.DateTime> start, Nullable<System.DateTime> end, string[] categories, object userState) {
if ((this.editAppOperationCompleted == null)) {
this.editAppOperationCompleted = new System.Threading.SendOrPostCallback(this.OneditAppOperationCompleted);
this.InvokeAsync("editApp", new object[] {
id,
name,
territory,
location,
primary,
start,
end,
categories}, this.editAppOperationCompleted, userState);
private void OneditAppOperationCompleted(object arg) {
if ((this.editAppCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.editAppCompleted(this, new editAppCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
/// <remarks/>
public new void CancelAsync(object userState) {
base.CancelAsync(userState);
private bool IsLocalFileSystemWebService(string url) {
if (((url == null)
|| (url == string.Empty))) {
return false;
System.Uri wsUri = new System.Uri(url);
if (((wsUri.Port >= 1024)
&& (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
return true;
return false;
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
public delegate void deleteAppCompletedEventHandler(object sender, deleteAppCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class deleteAppCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal deleteAppCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
/// <remarks/>
public string Result {
get {
this.RaiseExceptionIfNecessary();
return ((string)(this.results[0]));
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
public delegate void importAppCompletedEventHandler(object sender, importAppCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class importAppCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal importAppCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
/// <remarks/>
public string Result {
get {
this.RaiseExceptionIfNecessary();
return ((string)(this.results[0]));
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
public delegate void editAppCompletedEventHandler(object sender, editAppCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class editAppCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal editAppCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
/// <remarks/>
public string Result {
get {
this.RaiseExceptionIfNecessary();
return ((string)(this.results[0]));Hi;
I used Fiddler to monitor the process, and it showed the request sent thru web service worked and returned a value, but in my .Net application the return captured as NULL. Could you please look into the code above and the result from Filddler and see if
you can help.
thank you.
REQUEST:
POST https://159.253.140.178/services/AppointmentService HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.4252)
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Host: 159.253.140.178
Content-Length: 1589
Expect: 100-continue
Connection: Keep-Alive
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://service.ips.salvationarmy.org/" xmlns:types="http://service.ips.salvationarmy.org/encodedTypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
<soap:Header>
<wsse:Security mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>
[email protected]
</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">
tpi4IPSws!
</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soap:Header>
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<tns:importApp>
<person xsi:type="xsd:int">
169275
</person>
<name xsi:type="xsd:string">
Corps Officer (Cahul-Russia) Test12
</name>
<territory xsi:type="xsd:string">
CAN
</territory>
<location xsi:type="xsd:string">
TEST LOCATION 12
</location>
<primary xsi:type="xsd:boolean">
true
</primary>
<start xsi:type="xsd:dateTime">
2013-05-30T00:00:00
</start>
<end xsi:type="xsd:dateTime">
2014-06-04T00:00:00
</end>
<categories href="#id1" />
</tns:importApp>
<soapenc:Array id="id1" soapenc:arrayType="xsd:string[1]">
<Item>
vpsCat1
</Item>
</soapenc:Array>
</soap:Body>
</soap:Envelope>
RESPONSE:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=UTF-8
Content-Length: 232
Date: Fri, 05 Sep 2014 19:45:22 GMT
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:importAppResponse xmlns:ns2="http://service.ips.salvationarmy.org/">
<return>
OK_572463
</return>
</ns2:importAppResponse>
</soap:Body>
</soap:Envelope> -
Web Service Method that returns an ArrayList
Hi guys,
I have to create a web service method that returns an ArrayList, but it's not working. My problem is:
With the "@XmlSeeAlso" annotation, my client prints the result, but the ArryaList is not from java.util, it's from org.me.calculator so I can't use it.
If I remove this annotation, I get no result, with this error message on Tomcat 6:
[javax.xml.bind.JAXBException: class java.util.ArrayList nor any of its super class is known to this context.]
I'm a newbie, and trying to understand web services (I read some posts here, but didn't get the point, from its answers), but this problem I just can't figure out how to solve....
WEb Service
package org.me.calculator;
import java.io.Serializable;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import java.util.*;
import java.util.ArrayList;
import javax.xml.bind.annotation.XmlSeeAlso;
* @author eduardo.domanski
@WebService()
@XmlSeeAlso({java.util.ArrayList.class}) // With this, I can see the result on client, but, the ArrayList is an org.me.calculator.ArrayList class.... Strange...
public class CalculatorWS {
@WebMethod(operationName = "valores")
public ArrayList valores(@WebParam(name = "a") int a,
@WebParam(name = "b") int b) {
ArrayList teste = new ArrayList();
ArrayList a1 = new ArrayList();
a1.add(a);
a1.add(b);
ArrayList a2 = new ArrayList();
a2.add(a+b);
a2.add(a-b);
teste.add(a1);
teste.add(a2);
return teste;
}CLient
package org.me.calculator.client;
import java.io.*;
import java.net.*;
import java.util.ArrayList;
import javax.servlet.*;
import javax.servlet.http.*;
public class ClientServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet ClientServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet ClientServlet at " + request.getContextPath() + "</h1>");
try { // Call Web Service Operation
org.me.calculator.CalculatorWSService service = new org.me.calculator.CalculatorWSService();
org.me.calculator.CalculatorWS port = service.getCalculatorWSPort();
// TODO initialize WS operation arguments here
int i = 8;
int j = -6;
// TODO process result here
ArrayList result = (ArrayList) port.valores(i, j);
out.println("Result = " + result);
} catch (Exception ex) {
System.out.println(ex);
// TODO handle custom exceptions here
out.println("</body>");
out.println("</html>");
out.close();
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}THank you all,
Eduardo
Edited by: EduardoDomanski on Apr 23, 2008 4:40 AMI forgot to say that, when I try to return an ArrayList of an object, for example, ClassA, which is on the package org.me.classes, on my Server App, the ArrayList is returned, but the objects are from type org.me.calculator.ClassA. It should be from org.me.classes.ClassA, right?
This package also exists on my client App, to use the object, but as the returned type is from another package, I can't even cast it. I tried some annotations @Xml... but it failed.
Packages
ServerApp
org.me.calculator
CalcWS.java
org.me.classes
ClassA.java
Client App
org.me.classes
ClassA.java
The return from my method should be an ArrayList of org.me.classes.ClassA, but when I print it, on client, it's from org.me.calculator.ClassA.
Does anybody knows, or had the same problem?
Thanks,
Eduardo -
Consuming Java Web Service with complex return types
Hi,
I'm consuming a Java Web Service and the return I get in
ColdFusion is a typed Java Object (with custom Java classes like
com.company.project.JavaClass ...)
Within this object I don't get direct accessible properties
as when I'm consuming ColdFusion Web Services, instead I get a
getPROPERTYNAME and setPROPERTYNAME method for each property.
How can I handle this? I don't want to call this methods for
each property (and there are nested objects with arrays of custom
classes below, which would really make this complicated).
What's the best way to cope up with this?
Thanks a lot,
FritzThe web service is actually the function, not the cfc and you
didn't show a function.
My own opinion is that since webservices by definition should
be available to any calling app (cold fusion, .net, flash, etc),
whatever gets returned from the method should be as universally
recognizable as possible. This generally means text, numbers,
boolean, or xml. -
Web Service Proxy not returning Response in 11g
Hi,
I am facing a difference in the creation of Web Service Proxy in 11g when compared to 10g. I have exposure of creating a Web Service Proxy in 10g and I do observe that the folder name 'runtime' gets generated automatically along with the proxy at the time of creation.
But in 11g, the nature & behavior of Web Service Proxy creation has changed a lot according to my observation. I am facing an issue where the response object is not returning the expected results as per the functionality.
In 10g, we have used a Stub class (automatically created under 'runtime' folder) and we are able to put some logs to see the request and response object in the form of 'xml'. But in 11g, I am facing difficulty in getting the same logged to see the response from OPA.
Please share your thoughts which would definitely help me in resolving this issue.
With Regards,
Thiyagarajan VHi,
I have also tried using 'Web Service Data Control' as an alternate method to overcome the above mentioned issue. But I have ended up the error "DCA-29000: Unexpected exception caught: java.lang.NullPointerException,msg=null" and failed to create a data control.
The JDeveloper version which I am using is 11.1.1.5.0. I also came to know that there is a patch (9790388) which has resolved this bug in JDeveloper. I also applied the same patch in my Oracle Home using OPatch utility.
But unfortunatley, the version suitable for this patch is 11.1.1.4.0 and I suspected that could be one of the reason that the problem has not got resolved yet.
Please suggest the patch or any solution which can also help me in resolving this issue. I really appreciate your time and effort in sharing your thoughts for the problems which I have mentioned over here.
Thank you !!!
With Regards,
Thiyagarajan V -
Consuming Domino web service with JAXB encounters Method Response element
I am able to consume a Domino R7 (Axis) web service with JAX-WS using Dispatch<SOAPMessage>. When I try using Dispatch<Object> however, JAXB throws an exception because it encounters an unexpected tag.
The XML from the web service looks like this:
<Envelope>
<Body>
<WebServiceMethodResponse>
<WebServiceMethodReturn>
The meaning of life
</WebServiceMethodReturn>
</WebServiceMethodResponse>
</Body>
</Envelope>With Dispatch<SOAPMessage>, I can get to the meaning of life quickly using SOAPBody.getElementsByTagName( "WebServiceMethodReturn" ) but with Dispatch<Object>, it appears I must also create a class for the WebServiceMethodResponse element to make JAXB happy. I don't see this happening in other people's examples. Has the Return-element-within-Response-element design been eliminated in pure JAX-WS web services, or is this something that only IBM does?In case anyone's search leads them here, I've posted the solution at:
*[http://www.pby.com/general.nsf/webarticles/dominowebservice01]*
It is an exhaustive article (not "Hello World"!) that goes through several versions of the web service and client - hopefully explaining all+ pieces of the puzzle:
~ web service code,
~ WSDLs
~ schema
~ thoroughly-documented clients that do and do not use JAXB
~ ... that use generated artifacts
~ ... that customize existing POJOs
~ the SOAP messages generated in each direction
~ the necessary JAXB annotations
~ explanations of how the code works
~ explanations of how namespaces affect the code
~ on and on and on...
My constant goal was to write an uncomplicated solution that uses as few artifacts (two) and annotations as possible. The end result is a small, fast JAX-WS 2.0 client that uses JAXB to invoke and consume a secured Domino 7 (1.4.2 JVM + AXIS) web service, using RPC/literal SOAP messages. -
EJB3 Creating Web Services with Complex Return Types
Hi
Not sure if this is the right place, but hoping someone can help!
I have an entity bean that has a collection (list<Address>) of sub-entities. I have then created a session bean to retrieve the Business and populate it's children.
I then expose this as a web service and although it works and I get appropriate XML out, the WSDL of the deployed service is not as I would like.
For example:
The return type is
<complextype name="Business">
<sequence>
<element name="id" type="int"/>
<element name="addresses" type="ns1:list"/>
</sequence>
</complextype>
<complextype name="Address">
<sequence>
<element name="id" type="int"/>
<element name="addresses1" type="string"/>
<element name="addresses2" type="string"/>
<element name="addresses3" type="string"/>
</sequence>
</complextype>
ns1:list is included as a separate schema as a complex extension of the base "collection"
So, even though the Address type is there it is not referenced from Business.
So, when I'm calling the Web Service from BPEL or ESB, I have not got the ability to map adequately back from the response.
I have tried a whole bunch of ways of getting this to work, but so far to no avail...
Has anyone seen this before, or can I somehow override the mapping from the Entity to the WSDL?
Any help would be most appreciated.
Thanks
ChrisThanks. We are using a Java Proxy to consume the web service as we need to use JAX-WS handlers. We created data control from the service stub that was created by the proxy. Our issue is with the response XML which comes as a complex type. Also, the data control is understanding the complex type and is creating the structure right. The problem is when we drag that control on a JSF page. No data is displayed. We think that we are not traversing the complex object properly which is creating the issue.
I understand that you answer related to the input is applicable to output as well. We can change the structure by flattening it but we thought that in 11G there is some new features where we can use the complex types out of the box without any change. Is that true? Also, any luck in finding the documents (broken links) on your blog page? -
Java Web Service "clears" sop:Include/ from SOAP Body?
I have a Java Web Service which processes SOAP Messages with MIME attachments. The references to the attachments are using XOP (XML-binary Optimized Packaging) specification.
The XML Schema for the SOAP Body content imports the namespace "http://www.w3.org/2004/08/xop/include", but it is not its main target namespace. When I run the service and view the HTTP packet through HTTP Analyzer, the SOAP Envelope looks like this:
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns0="http://www.ACORD.org/Standards/AcordMsgSvc/1"
xmlns:xop="http://www.w3.org/2004/08/xop/include"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<env:Header>
</env:Header>
<env:Body>
<ac:CallRq xmlns:ac="http://www.ACORD.org/Standards/AcordMsgSvc/1">
<ac:WorkFolder>
<ac:MsgFile>
<ac:FileId>
<sop:Include href="cid:93609df7-d718-4801-bab9-57e3fd9cc5b5"
xmlns:sop="http://www.w3.org/2004/08/xop/include"
xsi:schemaLocation="http://www.w3.org/2004/08/xop/include http://www.w3.org/2004/08/xop/include"/>
</ac:FileId>
<ac:FileFormatCd>text/xml</ac:FileFormatCd>
</ac:MsgFile>
</ac:WorkFolder>
</ac:CallRq>
</env:Body>
</env:Envelope>But when I access the java.xml.soap.SOAPMessage object in handleRequest(MessageContext) method of the Web Service's handler I get the following:
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns0="http://www.ACORD.org/Standards/AcordMsgSvc/1"
xmlns:xop="http://www.w3.org/2004/08/xop/include"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<env:Header>
</env:Header>
<env:Body>
<ac:CallRq xmlns:ac="http://www.ACORD.org/Standards/AcordMsgSvc/1">
<ac:WorkFolder>
<ac:MsgFile>
<ac:FileId>
</ac:FileId>
<ac:FileFormatCd>text/xml</ac:FileFormatCd>
</ac:MsgFile>
</ac:WorkFolder>
</ac:CallRq>
</env:Body>
</env:Envelope>As you can see, the <sop:Include/> element has disappeared.
Does anyone has an idea why this happens?
Thank you!
SimeonNeither the simple "setter" methods work.. :(
The php client side:
$string="aladar";
$client->setSample($string);
$return = $client->getSample();
The server side:
public String sample;
public String getSample() {
return sample;
public void setSample(String a_sample) {
sample = a_sample;
Any ideas? -
Call Web Service and display return values in table
Hi all,
I am calling a self-implemented web service with visual composer. The webservice returns the following data shown below.
Each item like carID, carBrand etc. should be displayed in an output table.
The problem is, that he doesn't display any data at all. Is there a problem with the webservice data which is returned or do I have to do some further settings in visual composer?
Thank you for your help! Kind regards, Patrick.
<?xml version="1.0" encoding="utf-8" ?>
- <ArrayOfCar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://IBM-W2003-EAI/GetCarList">
- <Car>
<CarID>A-471</CarID>
<CarBrand>Alfa</CarBrand>
<CarModel>156</CarModel>
<Kw>100</Kw>
<Ps>136</Ps>
<Km>79000</Km>
<Year>1998</Year>
<Price>7500,0000</Price>
<Url />
<Status>Available</Status>
</Car>
- <Car>
<CarID>A-736</CarID>
<CarBrand>Audi</CarBrand>
<CarModel>A4</CarModel>
<Kw>110</Kw>
<Ps>150</Ps>
<Km>87000</Km>
<Year>2000</Year>
<Price>15780,0000</Price>
<Url />
<Status>Reserved</Status>
</Car>
</ArrayOfCar>Hi Shai,
the webservice is working well, trying to test it with webservice navigator.
He also returns the correct number of rows (because there appears slider beneath the table output and I also counted the rows), but there is no data displayed in visual composer.
I have got no further ideas, what the problem is...
THank you for your support.
Kind regards, PAtrick. -
Hi @ll
I try to define a specific jms response queue for a web service client that communicates SOAP/jms, running on a WLS 9.2. The web service itself runs also on a WLS 9.2 where also the request and response queues are located. By default the client receives the responses from a temporary response queue. Is there a way to define a specific response queue e.g. setting the JMSReplyTo property in the request on the client side?
/cheers&greetz
DaniWLS do not have a light SOAP client with callbacks yet. It is
not a planed feature for 7.0, but we will considering this for
post 7.0.
regards,
-manoj
"markhu" <[email protected]> wrote in message
news:[email protected]..
Hi, guys:
I have a system : client written in Java/Swing, HTTPS authentication,
and then subscribes to a WLS 61. SP2 based JMS Topic and also has the
ability to send message to a Queue, since I can not bring down the size of
the client side WLS JMS dependency lib, I am thinking about using SOAP /
web service as the communication tier between my client and server, so the
question is: since the client need get the price updates in a real time
mode, I need build a server side based PUSH for all the new price updates
which come into the JMS Topic, and broadcast as SOAP messages to client,is
this mean that I have to build the Call - Back for the Java Swing Client,so
it can automatically get the new price updates as it's getting from JMS
Topic now ? Any Idea on how to build server side PUSH based SOAP message
center as web service ?? Thanks a lot.
regards,
mark
FYI:
I need the same PUSH service for my .NET based client as well. -
Publish ColdFusion Web Service with Complex Return Type
Hi,
I am working on a project to publish couple ColdFusion
webservices. The cosumer of those webservices is a Java
application.
One of my webservice need return an object. Here are demo
codes:
The returned ojbect is AddressRespond
AddressRespond.cfc:
<cfcomponent>
<cfproperty name="addresses" type="Address[]" />
<cfproperty name="myLearnException" type="MyException"
/>
</cfcomponent>
Address.cfc:
<cfcomponent>
<cfproperty name="city" type="string" />
<cfproperty name="state" type="string" />
</cfcomponent>
MyException.cfc:
<cfcomponent>
<cfproperty name="code" type="string" />
<cfproperty name="reason" type="string" />
</cfcomponent>
If the webservice "cosumer" is a ColdFusion application,
there is no any problems. But the Java application doesn't
understand the type of addresses in the WSDL file which is
gernerated by ColdFusion:
<complexType name="Address">
<sequence>
<element name="city" nillable="true"
type="xsd:string"/>
<element name="state" nillable="true"
type="xsd:string"/>
</sequence>
</complexType>
<complexType name="MyException">
<sequence>
<element name="code" nillable="true"
type="xsd:string"/>
<element name="reason" nillable="true"
type="xsd:string"/>
</sequence>
</complexType>
<complexType name="AddressRespond">
<sequence>
<element name="addresses" nillable="true"
type="tns1:ArrayOf_xsd_anyType"/>
<element name="MyException" nillable="true"
type="impl:MyException"/>
</sequence>
</complexType>
Could anybody give me any idea on how to resolve this
problem?
Thanks!The web service is actually the function, not the cfc and you
didn't show a function.
My own opinion is that since webservices by definition should
be available to any calling app (cold fusion, .net, flash, etc),
whatever gets returned from the method should be as universally
recognizable as possible. This generally means text, numbers,
boolean, or xml. -
Web Service XML Changes Return Table Field Names
I am writing a Web service to return a employee information from SAP using .Net Connector. My Webservice XML changes return table column names with few escape characters. Does anyone know why this happens? and How to prevent it?
Every column name is changed: e.g. PERS_NO to PERS_--5fNO
NCo -> 2.0
RFC- > Custom Function module
RFC Return Type -> ZFPSYNC
VS.Net -> VS Studio 2003, ( C# Web service)
Here is part of XML document:
<?xml version="1.0" encoding="utf-8" ?>
- <ArrayOfZFPSYNC xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/">
- <ZFPSYNC>
<PERS_5fNO>00100001</PERS_5fNO>
<PDS_5fEMPID>00054740</PDS_5fEMPID>
<SSN>001380261</SSN>
<NAME_--5fPFX />
<FIRST_5fNAME>Tuesday</FIRST_5fNAME>
<LAST_5fNAME>October</LAST_5fNAME>
<NAME_--5fSFX />
<PRIOR_5fNAME>Tuesday October</PRIOR_5fNAME>
<NICKNAME />
<CO_5fCODE>TAX</CO_5fCODE>
<CO_5fCODE_5fT>Tax LLP</CO_5fCODE_5fT>
<CO_5fCTRY>US</CO_5fCTRY>
<ORG_5fUNIT>50191687</ORG_5fUNIT>
<ORG_5fUNIT_5fT>Northeast Region Lead Tax</ORG_5fUNIT_5fT>
<EE_5fLEVEL>C1</EE_5fLEVEL>
<EE_5fLEVEL_5fT>Firm Director</EE_5fLEVEL_5fT>
<SRV_5fAREA>TAX</SRV_5fAREA>
<SRV_5fAREA_5fT>Tax</SRV_5fAREA_5fT>
<JOB_5fFAM>CS-TAX</JOB_5fFAM>
<JOB_5fFAM_5fT>CS - Tax</JOB_5fFAM_5fT>
<PER_5fAREA>BOSX</PER_5fAREA>
<PER_5fAREA_5fT>Boston-Berkeley St-TAX</PER_5fAREA_5fT>
<PER_5fADDR>200 Berkeley Street</PER_5fADDR>Please install patch from OSS note 506603. This should correct the problem.
-
Java Web Service Access SOP Header and SOAP Body
Hi
I am newbie to Web Service. I had a Java class and I converted it to Web Service(LoginWebService has methods login, register).
Now my client is accessing my web services and calling methods login and register.
Now I want to add few values in SOAP header in client side.
My Questions:
1. How can I access the SOAP headers and SOAP Body in my Server Web Service method implementations?
2. Is there any API that I have to use?
3. Does anyone have any sample code for these things?
ThanksSeems like the exception handling logic is not sound - but your posting is difficult to read. Please use the *\* tag to mark and end source code snippets.
Have a look at the sample code in {message:id=4205205} - does a SOAP call using PL/SQL only. -
Web Service function to return OracleDataReader
My current .Net code with ODP calls a data access layer function which returns an "OracleDataReader". We would like to test an alternate approach and call a web service function instead. When I try and create the Web Service function it does not allow me to specify "OracleDataReader" as the return since it gives an error that the function cannot be serialized since it "does not implement Add(System.Object).".
Is there an Oracle.DataAccess.Client alternative? Does this mean I have to return a "DataSet" since it is the only data structure which can be serialized?this is pseudo c#
snippets of a class definition NB Note the Serializable decoration
#region ADPerson definiton
[Serializable]
public class ADPerson
#region ADPerson fields
private string _postCode;
private string _deliveryOffice;
private string _telephoneNumber;
#region ADPeople collection of ADPerson
[Serializable]
public class ADPeople : System.Collections.CollectionBase
public int Add(ADPerson value)
This is in my web method
using AD = ADClasses;
#region main lookup method
[WebMethod(Description = "Lookup in Active Directory")]
public AD.ADPeople ADLookup(string strSearchCriteria, string strUser, string strPassword, string strDomain)
AD.ADPeople adPeople = new AD.ADPeople();
AD.ADPerson ap = new AD.ADPerson();
adPeople.Add(ap);
return adPeople;
Just make sure that your class(es) are serializable and return them from your web service. If you call the ser vice from a browser you will see your class as xml. If you call it from an app you can do something like
class c= callWebService(param);
HTH -
I just upgraded from FB4 beta to the FB4 release. I'm still running the Flex 3.5 SDK and amnow unable to use a lot of my web services. In the previous FB4 beta, I could generate the proxy classes from the WSDL and would get a ResultEvent that containted either my complex data type or an ArrayCollection of those complex data types.
After I deleted and regenerated the services under the FB4 release, I get a ProxyObject or an ArrayCollection of ProxyObjects. No matter what I try I cannot map those ProxyObjects to my complex data type and it's driving me nuts! The oddest thing is that it didn't break all of my services, just some of them.
I've tried several methods of mapping the ProxyObject to my custom data type but I get a null result every time and no errors.
private function getContactsResult_handleResult(event:ResultEvent):void
this._contactsList.removeAll();
if (event.result is ArrayCollection)
for each (var contact:ContactType in event.result)
_contactsList.addItem(contact);
if (event.result is ContactType)
_contactsList.addItem(event.result as ContactType);
Any suggestions?It looks like this was a combination of the upgrade,
increasing use of ASP files and not having seperate application
pools in IIS.
We've just starting edding aspx apps, previously we only had
one asp app so we only used the default app;icaton pool in iis.
With the errors in the virtual directory started, we deleted and
remade the VD with it's only application pool. That appears to have
resolved the issues. The only concern I have is one of the VD did
have it's own applicaton pool and still had the very slow response
after the upgrade. But I'll see how this solution works for the
future.
The decesion was made to only have cf8 installed since that
worked well on our testing server, so we did intend to overwrite
the CFIDE folder.
Thanks for checking this out and for your time on this.
At this point I consider this closed. If something else comes
up I'll start a new thread on it.
Maybe you are looking for
-
Changing speed with 50i movies????
I get horrible results when I use the motion menu to change the speed of interlaced movies. Although I think it is clear what's the problem I'm at a total loss how to get this fixed. Can anyone give me a workaround or proper settings or whatever to g
-
Vendor Statement Balance reconciliations
Good afternoon I am currently engaged at a customer that wants to perform automated Vendor Statement Balance reconcilitions in SAP. They are looking for SAP functionality that will enable them to upload monthly vendors statement transactions into SAP
-
I got trouble reading a line and breaking the numbers up
Hi. I am trying to read a text file with sample data such as: 1 435 345345 3 43535 and so fourth. Basiclly is a line containing many numbers. How can i read them as individual integers? I can't find a source on the web that explain a method to solve
-
The system changes the hour in Chile today but the official change is to happen April, 27th
The system changes the hour in Chile today but the official change is to happen April, 27th... Would be the Apple team so kind as to fix the mistake?
-
Hi everybody I need to create a database using Flash which gets the data such as "name , last name..." from the user and stores it in a database. How can I do this job