External Routing Service

has anyone implemented an external routing service for the human task activity? I find the documentation lacking in that direction. I need to be able to define the assignee as a user or group at runtime. Apparently you can't do that in 10.1.3.1 without an external routing service

I think that what you need is writing a external routing policy. That is also what I am trying to do. Here is the only doc I have found on the subject :
http://download-uk.oracle.com/docs/cd/B31017_01/integrate.1013/b28981/workflow.htm#BABGCHHD
I think we both want to make the same thing : make the human tasks more dynamic. ANd according to me, the external routing policy is the best (or less bad) solution.
As in the example below
What I still don't manage to do is creating a Participant that is "Parallel "or "Management Chain".
This work fine in the onOutcomeUpdated() method :
ObjectFactory objFactory = new ObjectFactory();
Participants participants = objFactory.createParticipants();
Participant participant = objFactory.createParticipantsTypeParticipant();
participant.setName("Loan Agent");
ResourceType resource2 = objFactory.createResourceType(user);
resource2.setIsGroup(false);
resource2.setType("STATIC");
participant.getResource().add(resource2);
But this doesn't work :
ObjectFactory objFactory = new ObjectFactory();
Participants participants = objFactory.createParticipants();
Parallel participant = objFactory.createParticipantsTypeParallel();
participant.setName("Loan Agent");
ResourceType resource2 = objFactory.createResourceType(user);
resource2.setIsGroup(false);
resource2.setType("STATIC");
participant.getResource().add(resource2);
Does anyone have an idea of how to make this bit of code work? Or any other idea about how to make a human task dynamically change its behaviour (for example switching from sequential pattern to parallel pattern according to a user action) is welcome!
Thomas

Similar Messages

  • How to Implement Management Chain in External routing Service

    hi,
    I am using External Routing Service to Assign & route the tasks.
    I will get the authorisation workflow in our external Routing class , Now I am suppose to implement that workflow in BPM worklist for that human task.
    One way is to know the way to implement management chain in the External Routing Service.
    I have found some BPEL classes for doing the same eg. ParticipantsType.ManagementChain, objFactory.createParticipantsTypeManagementChain().
    But not able to find any sample code to implement.
    Does any body knows how to implement the same.
    Is their any other way to resolve this issue.
    you can also refer the following thread to understand the problem statement: PROGRAMMATICALLY PERSISTING THE APPROVAL WORKFLOW FOR A HUMAN TASK.
    thanks
    Jagdish

    I have tried the below mentioned code for implemnting management chain...
         private Participants createParticipant() {
              System.out.println("1");
              String user = users[numberOfApprovals++];
              ObjectFactory objFactory = new ObjectFactory();
              Participants participants = objFactory.createParticipants();
              participants.setIsAdhocRoutingSupported(false);
                   StageType stage = objFactory.createParticipantsTypeStage();
                   stage.setName("Stage1");
                   System.out.println("2");
                   SequentialParticipant seqParticipant = objFactory.createParticipantsTypeSequentialParticipant();
                   seqParticipant.setName("Stage1.Participant1");
                   System.out.println("3");
                   ListType listType = objFactory.createList();
                   ManagementChainListType managementListType = objFactory.createManagementChainListType();
                   // adding Resource in the management chain
                   ResourceType resourceChain = objFactory.createResourceType("fkafka");
                   resourceChain.setIsGroup(false);
                   resourceChain.setType("STATIC");
                   resourceChain.setIdentityType("user");
                   managementListType.getResource().add(resourceChain);
                   System.out.println("4");
                   // adding levels in the management chain
                   ParameterType levelParameterType = objFactory.createParameterType("2");
                   levelParameterType.setType("STATIC");
              managementListType.setLevels(levelParameterType);
                   System.out.println("5");
                   // adding title in the management chain                    
                   ParameterType titleParameterType = objFactory.createParameterType("Vice President");
                   titleParameterType.setType("STATIC");
                   managementListType.setTitle(titleParameterType);
                   System.out.println("6");
                   listType.setManagementChain(managementListType);
                   System.out.println("7");
                   seqParticipant.setList(listType);
                   System.out.println("8");
                   stage.getParticipantOrSequentialParticipantOrAdhoc().add(seqParticipant);
                   System.out.println("9");
              participants.getParticipantOrSequentialParticipantOrAdhoc().add(stage);
              System.out.println("10");
              return participants;
    The above code doesnot give error during execution but It doesnot work, what It's suppose to be...
    what It does is..It calls onInitiation method number of times [equal to the number of levels given in hierachy +1] at one shot. without being assigned to anybody and come out of the human task.
    please let me know..If am missing something...
    thanks
    Jagdish Khera

  • Using External Routing Service to Route the task

    Hi,
    I am using External Routing Service to Route the task and have placed the jar file at
    /oracle/app/product/fmw/Oracle_SOA1/soa/modules/oracle.soa.ext_11.1.1
    I have modified the Manifest.mf file for "oracle.soa.ext.jar" as
    Manifest-Version: 1.0
    Ant-Version: Apache Ant 1.7.1
    Created-By: 17.0-b17 (Sun Microsystems Inc.)
    Implementation-Vendor: Oracle
    Implementation-Title: Oracle SOA EXT
    Implementation-Version: 11.1.1
    Product-Name: Oracle SOA EXT
    Class-Path: ./routing/lib/jaxrpc.jar ./routing/lib/axis-update.jar ./routing/lib/axis.jar ./routing/lib/log4j-1.2.11.jar ./routing/lib/orabpel.jar ./routing/lib/bpm-services.jar ./routing/lib/xmlparserv2.jar ./routing/lib/wsdl4j-1.5.1.jar ./routing/lib/commons-discovery-0.2.jar ./routing/workflow.routing.jar
    Product-Version: 11.1.1.4.0
    Specification-Version: 11.1.1
    Extension-Name: oracle.soa.ext
    but it's failing to get the ExternalRoutingService.class and throws exception
    Missing class: ExternalRoutingService
         Dependent class: oracle.bpel.services.workflow.task.impl.RoutingSlipInterpretor
         Loader: weblogic.utils.classloaders.GenericClassLoader@2080514773
         Code-Source: /oracle/app/product/fmw/Oracle_SOA1/soa/modules/oracle.soa.workflow_11.1.1/bpm-services.jar
         Configuration: /oracle/app/product/fmw/Oracle_SOA1/soa/modules/oracle.soa.workflow_11.1.1/bpm-services.jar
    I tried adding the workflow.routing.jar to classpath (as this jar contains the ExternalRoutingService.class) and then gives error for IAssignmentService saying class not found IAssignmentService.class

    Hi Pranay,
    Did you find solution for this?
    I am also facing same issue.
    Thanks
    Balaji

  • Parallel participants blocks in External Routing Service

    I'm trying to configure an External Routing service (it implements IAssignmentService interface) as described in Developer's Guide for Oracle SOA Suite[1].
    The assignment stage configuration needed: one or more parallel participants blocks in the same stage, each one configured with different participants and voting rules.
    The CustomAssignmentService below shows my custom External Routing Service: when I try to add two or more parallel participants, only the first one it is assigned to the task.
    I haven't found documentation: how can I implement parallel participants blocks in External Routing Service?
    Product version: SOA Suite 11.1.1.6
    References:
    [1] http://docs.oracle.com/cd/E28389_01/dev.1111/e10224/bp_hwfmodel.htm#BABCFHCC
    ----------- CustomAssignmentService.java ------------------
    package br.com.iprocess;
    import java.util.Map;
    import oracle.bpel.services.workflow.metadata.routingslip.model.*;
    import oracle.bpel.services.workflow.metadata.routingslip.model.Participants;
    import oracle.bpel.services.workflow.metadata.routingslip.model.ParticipantsType.*;
    import oracle.bpel.services.workflow.task.IAssignmentService;
    import oracle.bpel.services.workflow.task.ITaskAssignee;
    import oracle.bpel.services.workflow.task.model.Task;
    import oracle.bpel.services.workflow.IWorkflowConstants;
    public class CustomAssignmentService implements IAssignmentService {
    private final String OUTCOME_APPROVE = "APPROVE";
    private final String OUTCOME_REJECT = "REJECT";
    public Participants onInitiation(Task task, Map propertyBag) {
    return createParticipant(task, propertyBag);
    public Participants onReinitiation(Task task, Map propertyBag) {
    return createParticipant(task, propertyBag);
    public Participants onOutcomeUpdated(Task task, Map propertyBag,
    String updatedBy, String outcome) {
    return null;
    public Participants onAssignmentSkipped(Task task, Map propertyBag) {
    return null;
    public java.util.List getAssigneesToRequestForInformation(Task task,
    Map propertyBag) {
    return null;
    public java.util.List getReapprovalAssignees(Task task, Map propertyBag,
    ITaskAssignee infoRequestedAssignee) {
    return null;
    public Participants createParticipant(Task task, Map propertyBag) {
    ObjectFactory objFactory = new ObjectFactory();
    Participants participants = objFactory.createParticipants();
    participants.getParticipantOrSequentialParticipantOrAdhoc().add(addParticipantsGroup1(objFactory));
    participants.getParticipantOrSequentialParticipantOrAdhoc().add(addParticipantsGroup2(objFactory));
    return participants;
    private Parallel addParticipantsGroup2(ObjectFactory objFactory) {
    Parallel parallelParticipant = objFactory.createParticipantsTypeParallel();
    ParallelCompletionCriteriaType vote = objFactory.createParallelCompletionCriteriaType();
    ParameterType defaultOutcome = objFactory.createParameterType(OUTCOME_REJECT);
    defaultOutcome.setType("STATIC");
    vote.setDefaultOutcome(defaultOutcome);
    String defaultPercentage = "51";
    ParameterType percentageOfOutcome = objFactory.createParameterType(defaultPercentage);
    percentageOfOutcome.setType("STATIC");
    vote.getOutcomePercentage().add(percentageOfOutcome);
    parallelParticipant.setAllResponders(vote);
    Resource resource = objFactory.createResource();
    resource.setValue("manager1, manager2");
    resource.setIsGroup(false);
    resource.setType("STATIC");
    parallelParticipant.getResourceOrRoutingSlip().add(resource);
    Resource resource2 = objFactory.createResource();
    resource2.setValue("manager3");
    resource2.setIsGroup(false);
    resource2.setType("STATIC");
    parallelParticipant.getResourceOrRoutingSlip().add(resource2);
    return parallelParticipant;
    private Parallel addParticipantsGroup1(ObjectFactory objFactory) {
    Parallel parallelParticipant = objFactory.createParticipantsTypeParallel();
    ParallelCompletionCriteriaType vote = objFactory.createParallelCompletionCriteriaType();
    ParameterType defaultOutcome = objFactory.createParameterType(OUTCOME_REJECT);
    defaultOutcome.setType("STATIC");
    vote.setDefaultOutcome(defaultOutcome);
    String defaultPercentage = "51";
    ParameterType percentageOfOutcome = objFactory.createParameterType(defaultPercentage);
    percentageOfOutcome.setType("STATIC");
    vote.getOutcomePercentage().add(percentageOfOutcome);
    parallelParticipant.setAllResponders(vote);
    Resource resource = objFactory.createResource();
    resource.setValue("operator1, operator2, operator3");
    resource.setIsGroup(false);
    resource.setType("STATIC");
    parallelParticipant.getResourceOrRoutingSlip().add(resource);
    return parallelParticipant;
    }

    I'm trying to configure an External Routing service (it implements IAssignmentService interface) as described in Developer's Guide for Oracle SOA Suite[1].
    The assignment stage configuration needed: one or more parallel participants blocks in the same stage, each one configured with different participants and voting rules.
    The CustomAssignmentService below shows my custom External Routing Service: when I try to add two or more parallel participants, only the first one it is assigned to the task.
    I haven't found documentation: how can I implement parallel participants blocks in External Routing Service?
    Product version: SOA Suite 11.1.1.6
    References:
    [1] http://docs.oracle.com/cd/E28389_01/dev.1111/e10224/bp_hwfmodel.htm#BABCFHCC
    ----------- CustomAssignmentService.java ------------------
    package br.com.iprocess;
    import java.util.Map;
    import oracle.bpel.services.workflow.metadata.routingslip.model.*;
    import oracle.bpel.services.workflow.metadata.routingslip.model.Participants;
    import oracle.bpel.services.workflow.metadata.routingslip.model.ParticipantsType.*;
    import oracle.bpel.services.workflow.task.IAssignmentService;
    import oracle.bpel.services.workflow.task.ITaskAssignee;
    import oracle.bpel.services.workflow.task.model.Task;
    import oracle.bpel.services.workflow.IWorkflowConstants;
    public class CustomAssignmentService implements IAssignmentService {
    private final String OUTCOME_APPROVE = "APPROVE";
    private final String OUTCOME_REJECT = "REJECT";
    public Participants onInitiation(Task task, Map propertyBag) {
    return createParticipant(task, propertyBag);
    public Participants onReinitiation(Task task, Map propertyBag) {
    return createParticipant(task, propertyBag);
    public Participants onOutcomeUpdated(Task task, Map propertyBag,
    String updatedBy, String outcome) {
    return null;
    public Participants onAssignmentSkipped(Task task, Map propertyBag) {
    return null;
    public java.util.List getAssigneesToRequestForInformation(Task task,
    Map propertyBag) {
    return null;
    public java.util.List getReapprovalAssignees(Task task, Map propertyBag,
    ITaskAssignee infoRequestedAssignee) {
    return null;
    public Participants createParticipant(Task task, Map propertyBag) {
    ObjectFactory objFactory = new ObjectFactory();
    Participants participants = objFactory.createParticipants();
    participants.getParticipantOrSequentialParticipantOrAdhoc().add(addParticipantsGroup1(objFactory));
    participants.getParticipantOrSequentialParticipantOrAdhoc().add(addParticipantsGroup2(objFactory));
    return participants;
    private Parallel addParticipantsGroup2(ObjectFactory objFactory) {
    Parallel parallelParticipant = objFactory.createParticipantsTypeParallel();
    ParallelCompletionCriteriaType vote = objFactory.createParallelCompletionCriteriaType();
    ParameterType defaultOutcome = objFactory.createParameterType(OUTCOME_REJECT);
    defaultOutcome.setType("STATIC");
    vote.setDefaultOutcome(defaultOutcome);
    String defaultPercentage = "51";
    ParameterType percentageOfOutcome = objFactory.createParameterType(defaultPercentage);
    percentageOfOutcome.setType("STATIC");
    vote.getOutcomePercentage().add(percentageOfOutcome);
    parallelParticipant.setAllResponders(vote);
    Resource resource = objFactory.createResource();
    resource.setValue("manager1, manager2");
    resource.setIsGroup(false);
    resource.setType("STATIC");
    parallelParticipant.getResourceOrRoutingSlip().add(resource);
    Resource resource2 = objFactory.createResource();
    resource2.setValue("manager3");
    resource2.setIsGroup(false);
    resource2.setType("STATIC");
    parallelParticipant.getResourceOrRoutingSlip().add(resource2);
    return parallelParticipant;
    private Parallel addParticipantsGroup1(ObjectFactory objFactory) {
    Parallel parallelParticipant = objFactory.createParticipantsTypeParallel();
    ParallelCompletionCriteriaType vote = objFactory.createParallelCompletionCriteriaType();
    ParameterType defaultOutcome = objFactory.createParameterType(OUTCOME_REJECT);
    defaultOutcome.setType("STATIC");
    vote.setDefaultOutcome(defaultOutcome);
    String defaultPercentage = "51";
    ParameterType percentageOfOutcome = objFactory.createParameterType(defaultPercentage);
    percentageOfOutcome.setType("STATIC");
    vote.getOutcomePercentage().add(percentageOfOutcome);
    parallelParticipant.setAllResponders(vote);
    Resource resource = objFactory.createResource();
    resource.setValue("operator1, operator2, operator3");
    resource.setIsGroup(false);
    resource.setType("STATIC");
    parallelParticipant.getResourceOrRoutingSlip().add(resource);
    return parallelParticipant;
    }

  • Consuming external web services in CAF

    Hi there,
    I am trying to set up a show case where a composite CAF app (exposed via WD or VC) uses SAP web services as well as external services. In this case, I chose to use the Fedex web services (http://fedex.com/developer).
    Everything works fine, I am able to import the webservice using the locally stored WSDL into my composite app, apply the mapping and implement the application service......build, deploy...all good.
    The problem occurs when trying to create the physical destination (under nwa/destination template management). NW expects a pointer/url to the wsdl or wsil file, but Fedex doesn't provide that via http. Putting the wsdl on a different web server doesn't help either as the SOAP call will be routed to the same host where the wsdl resides (in this case NOT the fedex system).
    Is there any way to circumvent the WSDL retrieval with external web services in Netweaver ? One alternative solution could be to use the Netweaver Service registry and publish the fedex wsdl to that, but I would like to avoid that as we haven't configured the SR at the moment.
    Thx, Nick

    Looks like I don't need it necessarily.
    There seems to be a bug in NW/CE 7.1. When defining a destination which points to a WSDL file which in turn points to a different server for SOAP messages (ServicePort), the endpoint URL is incorrectly defined.
    WSDL URL: http://www.server1.com/test.wsdl
    SOAP URL/Port: http://server2.com/webservices
    the server tries to dispatch the SOAP call to http://server1.com/webservices which can't be found.
    In CE 7.1.1. though, that bug is fixed, and everything works fine without the need to publish the remote service (wsdl) to the SR and to subsequently query it.
    Nick

  • ESB Routing Service Byte Order Mark error

    Hi,
    I have a esb routing service to accept soap messages from an external system. The external system sents messages with a Byte Order Mark for UTF8 at the start. If i look at the tcp messages i see the following:
    POST /event/DefaultSystem/CaseVerhuizing/EsbStuf0204Service HTTP/1.1
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client
    Protocol 2.0.50727.42)
    Content-Type: text/xml; charset=utf-8
    SOAPAction: "http://www.egem.nl/StUF"
    Host: ux920:7777
    Content-Length: 2382
    Expect: 100-continue
    Connection: Keep-Alive
    HTTP/1.1 100 Continue
    ...<?xml version="1.0" encoding="utf-8"?><soap:Envelope
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    The three dots signify the hexadecimal value EF BB BF which is for UTF8. This raises an error however in iAS:
    HTTP/1.1 400 Bad Request
    Date: Mon, 16 Jul 2007 14:41:32 GMT
    Server: Oracle-Application-Server-10g/10.1.3.1.0 Oracle-HTTP-Server
    Content-Length: 158
    Connection: close
    Content-Type: text/html; charset=ISO-8859-1
    Bad Request
    Error parsing envelope: (1, 1) Start of root element
    expected
    It seems the esb routing service is trying to parse the Byte Order Mark as xml and therfore can not find the soap envelope tag? Any help is appreciated!
    Kind Regards,
    Andre Jochems
    Message was edited by:
    ajochems

    Hi Andre,
    We got exactly the same error as you did. Your analysis is also correct; the first 3 bytes of the reply are not interpreted by BPEL/ESB as a BOM, but as 'real' characters.
    The problem is due to the fact that the UTF-8 BOM is actually optional in the specifications, and obligatory for UTF-16. The UTF-8 BOM practically has no meaning, and is never used in most SOA applications. However the guys that made the webservice you need to consume are (wrongly) convinced that the UTF-8 BOM is supposed to be there according to the OASIS/W3C specs. Which is not true btw...
    For more info on BOMs, check: http://en.wikipedia.org/wiki/Byte_Order_Mark
    Unfortunately I don't have the code for our 'proxy' service anymore. I remember that we simply made a little servlet, that uses input- and outputstreams. The inputstream then filters the BOM. Remember to also proxy the WSDL to 'rewrite' the endpoint ;-)
    HTH,
    Bas

  • External Router and Firewall

    I have just been informed by Apple Care that my entire implementation for my Xserve is off base. We only got to this problem when Kerberos wouldn't work. I had judiciously followed the manual and had my Ether1 and 2 ports set up to do external (1) internal (2), provide DHCP, NAT, VPN the whole nine yards. Ran gateway assistant, got my FQDN, promoted to open directory. And now I am told by my Apple Care guy that this is not at all the way to go; that I need to have an external router with firewall and assign the static IP to it and then run the server interally only. Let me just say I took the 4 day server essentials class and that was noticably lacking in the discussion. So I guess what I am asking today is what an ideal router/firewall product would be suggested. I'd prefer it be rack mounted. I also need a product that the company is going to support. So suggestions are greatly appreciated.
    I guess I am back to square one on this. Full reinstall. Sigh.

    1. Run OD and AFP on the fixed IP Master. This should
    be your strongest, fastest server and must have a
    real fixed IP address, not allocated by DHCP. You
    need an FQDN for this IP address entereted in your
    internal DNS.
    WES: I believe I am hearing you say that the VPN/Firewall server (the weaker one) would now carry the static IP address on ethernet1; and have say 192.168.2.1 as it's manualy set internal IP on ethernet2; say 192.168.3.1. The better server would have it's IP manually set to, say 192.168.3.1.
    2. Run internal DHCP and DNS services on the Master
    also.
    WES: I am not sure why one would run DHCP and DNS here though? I figured that was a simplier process to accompish off the weaker server.
    3. On your firewall machine (the Replica, maybe
    running Tiger Server 10-user) run your webpages &
    VPN.
    WES: But as I understood it, one had to run this off of the machine with the FQDN. Same as mail. More below....
    4. Put Mail on a completely separate box in your
    DMZ.
    WES: I'm not sure I follow you here. I am out of boxes. Actually I'll have to buy another one if I got this route at all. I don't have nearly a large enough operation to justify three servers -- maybe not two -- except for this problem.
    One advantage of using a Tiger Server Master/Replica
    over a cheap firewall box is that you have redundancy
    available for all your Tiger Server apps (DHCP, DNS,
    etc). You also have an automatic backup of all user
    accounts/passwords and you don't need to configure
    separate VPN accounts/profiles for your users.
    WES: Yes that makes sense.
    Plus, if you're serious about VPN, 'proper' routers
    start to get real expensive if you need concurrent
    connections.
    WES: There is another issue that I am a bit uncertain about. Where I got into trouble here was trying to get Kerberos to work. However, I am not sure that in the end that's a service I'm going to need. If VPN encrypts all traffic over the internet is Kerberos necesssary. I DON'T need it in house as there isn't an internal security issue of any kind. Maybe I am shooting for something I don't need...which brings us to...I am still confused about the Apple Care guy's comment that with the set up as it is, he could essentially raid my OD. He rattled off a lot of cool talk that made me think he was right but I have never found any reference to this. Can anyone explain to me -- one box acting in this capacity for a small office with a public IP -- being that open to a security risk. Puzzles me.

  • How to use External Routing in Human Task

    Hi,
    Could you please help me knowing how to create External Routing in Human Task in SOA Composite.
    Thanks

    When defining the external routing class in the .task, you can define the name value pairs which you want to pass to the program. Here you can pass dynamic values to the class as well by reading the appropiate node from the payload. In your class the name, value would be available in the "Map propertyBag" parameters in Rajiv's example link.
    Document says:
    Map of properties — When an assignment service is specified, a list of properties can also be specified to correlate callbacks with backend services that determine the task assignees.Or if you are too lazy to map many parameters and values, you can always read the whole Task task and then use getDocument and some xml reading to determine the values. This Task is the whole document.
    API:
    http://docs.oracle.com/cd/E17904_01/apirefs.1111/e10660/oracle/bpel/services/workflow/task/model/TaskType.html#getDocument__Document says:
    Task document — The task document that is executed by the workflow. The task document contains the payload and other task information like current state, and so on.Also you need to make sure that you are maintaining the state of the assignment class, doc says:
    The assignment service class cannot be stateful because every time workflow services need to call the assignment service, it creates a new instance.Thus if you are doing multiple serial assignments one after the another and if your server restarts in between, then the approval would start at the first assignee again. Suppose in Rajiv's doc link e.g., if the task is assigned to 'wfaulk' and the server restarts then the task would be assigned back to 'jstein'. In order to prevent this you need to modify the java code and each time the variable changes it's value you need to place it in a dehydration store. Also on each action over the process you need to reinitialize the variable from that dehydration store.
    -Bikash

  • Invoking an ESB Routing Service

    Hi,
    I have a routing service that i have installed on an Oracle ESB Server. When i test the web service from Oracle Application Server (by searching for the routing service port from the Oracle Apps Server itself) - its sucessful.
    The problem i have is that the Routing service needs to be invoked from an external application they are encountering an error - a SOAP Exception: faultCode=HTTP Response Code -405.
    I tried invoking the routing service from Soap UI and i get an error - with the response fault being env:ESBMessageProcessingFailed.
    In both the last two cases, I dont see an instance being created for that request in the ESB control.
    Any ideas in resolving this is highly appreciated.
    Thanks.

    Hi,
    I had the similar issue, the problem I found is that whenever there is a key workd 'event' in the target URL then the system will look for the target on the same system source system you invoke the service instead of looking for the remote system where the ESB is lying.
    I also guess this happens when there are two targeted systems in your ESB.
    For this edit your WSDL file and remove the do remove the one target alias name. and keep only only. Hope this will help you.
    --Khaleel                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Invoking Routing service from axis DII client

    Hi,
    Iam trying to invoke a routing service from an axis-1.4 dii client. I checked "Can be invoked from external service" for this routing service. The invocation returns with a fault -
    INFO: Mapping Exception to AxisFault
    AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
    faultString: java.lang.NullPointerException
    faultActor:
    faultDetail:
         stackTrace: AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
    faultString: java.lang.NullPointerException
    faultActor:
    faultDetail:
    java.lang.NullPointerException
         at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:135)
         at org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:942)
         at org.apache.xerces.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:569)
    Iam not able to identify the reason behind this.
    Please help.

    Does it require WSIF to invoke a routing service ?

  • Help with ESB as external SOAP service proxy

    We are trying to leverage ESB in the first steps of implementing an SOA solution for our organization.
    We have an external SOAP service that we would like to register with Oracle ESB. In turn, are internal programs
    would then call the service through the ESB using a SOAP interface. This allows us to hide the external
    SOAP service definition from our internal programs, allowing us to modify the external SOAP service or add extra routing
    where necessary without affecting the calling client.
    CLIENT -> (SOAP) ESB -> (SOAP) EXTERNAL SERVICE
    Is this the correct use of ESB?
    We are having a couple of issues when trying to use the WSDL ESB creates within our client code. One being Oracle APEX.
    We can create forms against the external soap service WSDL, but when we try to hit the WSDL ESB creates, it gives back
    "The WSDL document could not be understood by the rendering engine. Click Create Web Service Reference Manually to continue creating a reference for this service."
    Any ideas?

    I was able to get the virtual service running through EM by changing the <hostname>
    http://<hostname>:8888/event/CustomerData/IdentitySOAPService
    Would the url on the test page be the wsdl url we would hand out to the clients? I am curious as to what the context /event/ is?
    Also, if I were doing straight service virtualization, would it be correct to just create a SOAP service hitting the external service? Or is it better to have a routing service exposed to the client?
    Client -> ESB [ (Routing Service) -> (Soap Service) ] -> External Service
    or
    Client -> ESB [ (Soap Service) ] -> External Service

  • IChat AV 3.1.6 (Mac) with AIM 5.9 (PC) AV Chat external router port setting

    Hello,
    I'm using iChat 3.1.6 on my Mac and want to videoconference (with audio) to PC users having installed AIM 5.9.
    We can't get a videocon started probably due to firewall settings. I opened up my Mac firewalll ports, yet the external router has to be handled as well, as far as I've understood.
    My external router is a FRITZ!Box Fon WLAN 7050 (UI), Firmware-Version 14.04.15. Does anybody know the exact procedure to open the necessary ports on this device? The user interface is somewhat clumsy, and I'm not the most experienced user. Your detailed instructions are much appreciated (c:
    THX
    iMac Intel Core Duo 20" 2 GHz   Mac OS X (10.4.8)  

    Dave, Ralph,
    thanks to both of you for your helpful answers - I have tried port forwarding on my AVM Fritz!Box, and opening the indicated ports for TCP and for UDP works - except for port 5060 (UDP), where I get an error message "FEHLER: Eintrag kollidiert mit interner Regel." - the router won't accept the port number entry since it violates an internal rule.
    I have tried to get support both from my ISP (1&1) and from AVM, the Fritz!Box manufacturer 3 days ago. AVM hasn't answered yet, I just got a ticket number from them so it seems they are working on it. 1&1, my ISP, claim they don't block any ports with their VoIP service, especially not port 5060.
    Admittedly, being only one step away from a working solution, I'm somewhat clueless now.
    Any more suggestions? It seems to be a specific AVM Fritz!Box problem (unless 1&1 admit otherwise)?
    Thanx
    Wolfgang

  • Error while trying to call external  web service from oracle PL/SQL 10.2 g

    Hi I am trying to call an external web service from oracle PL/SQL .I am getting following run time error when I try to set the opeartion style.
    But as per the oracle documentation this is one of the 2 valid values.
    ORA-29532: Java call terminated by uncaught Java exception: operation style: "document" not supported.Teh webservice does expect the operation style as document.
    Following is the code I am executing.
    FUNCTION email
    return varchar2
    AS
    service_ SYS.utl_dbws.SERVICE;
    call_ SYS.utl_dbws.CALL;
    service_qname SYS.utl_dbws.QNAME;
    port_qname SYS.utl_dbws.QNAME;
    operation_qname SYS.utl_dbws.QNAME;
    string_type_qname SYS.utl_dbws.QNAME;
    retx ANYDATA;
    retx_string VARCHAR2(1000);
    retx_double number;
    retx_len number;
    params SYS.utl_dbws.ANYDATA_LIST;
    l_input_params SYS.utl_dbws.anydata_list;
    l_result ANYDATA;
    l_namespace VARCHAR2(1000);
    begin
    -- open internet explorer and navigate to http://webservices.imacination.com/distance/Distance.jws?wsdl
    -- search for 'targetNamespace' in the wsdl
    l_namespace := 'http://service.xmlservices.global.freedomgroup.com/';
    -- search for 'service name' in the wsdl
    service_qname := SYS.utl_dbws.to_qname(l_namespace, 'ClientCoreWebServiceBeanService');
    -- this is just the actual wsdl url
    service_ := SYS.utl_dbws.create_service(HTTPURITYPE('http://hostname/GlobalWebServices/services/ClientCoreWebService?wsdl'), service_qname);
    -- search for 'portType name' in the wsdl
    port_qname := SYS.utl_dbws.to_qname(l_namespace, 'ClientCoreWebServiceBeanPort');
    -- search for 'operation name' in the wsdl
    -- there will be a lot, we will choose 'getCity'
    operation_qname := SYS.utl_dbws.to_qname(l_namespace, 'postalCodelookup');
    -- bind things together
    call_ := SYS.utl_dbws.create_call(service_, port_qname, operation_qname);
    -- default is 'FALSE', so we make it 'TRUE'
    SYS.utl_dbws.set_property(call_, 'SOAPACTION_USE', 'TRUE');
    -- search for 'operation soapAction' under <wsdl:operation name="getCity">
    -- it is blank, so we make it ''
    SYS.utl_dbws.set_property(call_, 'SOAPACTION_URI', '');
    -- search for 'encodingstyle' under <wsdl:operation name="getCity">
    SYS.utl_dbws.set_property(call_, 'ENCODINGSTYLE_URI', 'http://schemas.xmlsoap.org/soap/encoding/');
    -- search for 'binding style'
    SYS.utl_dbws.set_property(call_, 'OPERATION_STYLE', 'DOCUMENT');
    -- search for 'xmlns:xs' to know the value of the first parameter
    -- under <wsdl:message name="getCityResponse"> you will see the line <wsdl:part name="getCityReturn" type="xsd:string" />
    -- thus the return type is 'string", removing 'xsd:'
    string_type_qname := SYS.utl_dbws.to_qname('http://www.w3.org/2001/XMLSchema', 'string');
    -- in the line <wsdl:operation name="getCity" parameterOrder="zip">
    -- the parameterOrder is 'zip', thus we put in 'zip'
    -- the 'ParameterMode.IN' is used to specify that we will be passing an "In Parameter" to the web service
    -- the 'ParameterMode.IN' is a constant variable in the sys.utl_dbws package
    --vj this cud be either params or xml
    SYS.utl_dbws.add_parameter(call_, 'param1', string_type_qname, 'ParameterMode.IN');
    SYS.utl_dbws.add_parameter(call_, 'param2', string_type_qname, 'ParameterMode.IN');
    SYS.utl_dbws.set_return_type(call_, string_type_qname);
    -- supply the In Parameter for the web service
    params(0) := ANYDATA.convertvarchar('<TFGGlobalBasicXMLDO><systemCd>GLOBAL</systemCd><username>GlobalAdmin</username><password>GlobalAdmin</password><localID>1</localID></TFGGlobalBasicXMLDO>');
    params(1) := ANYDATA.convertvarchar('<TFGGlobalPostalCodeLookupIDDO><postalCode>02446</postalCode><countryCode>USA</countryCode><stateCode>MA</stateCode><cityDisplay>BROOKLINE</cityDisplay><countyDisplay>NORFOLK</countyDisplay><include_inactive_flag>True</include_inactive_flag></TFGGlobalPostalCodeLookupIDDO>');
    -- invoke the web service
    retx := SYS.utl_dbws.invoke(call_, params);
    dbms_output.put_line(retx.gettypename);
    -- access the returned value and output it to the screen
    retx_string := retx.accessvarchar2;
    dbms_output.put_line('done' || retx_string);
    dbms_output.put_line('PL/SQL DII client return ===> ' || retx_string);
    -- release the web service call
    SYS.utl_dbws.release_service(service_);
    return retx_string;
    end email;

    thsi is urgent anybody ????

  • Deliver data to external web service possible in OBIEE 11g?

    Hi all,
    I'm looking into the possibility of "pushing" data from OBIEE and out to an external web service, e.g. through executing a scheduled report that instead of delivering the result on screen, it would call an external web service that would consume the generated data for storage in an external system.
    Does anyone know if this is possible to implement in OBIEE 11g? (So far, all I've found is how to display data in OBIEE through consumation of web service(s), but I'd like to "push out" data to a web service from OBIEE).
    Regards,
    -Haakon-

    Action Links 11g - Invoke webservice you can try out..... I never tried... Just sharing my views.
    http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/bi/bi1113/actionframework/actionframework.htm

  • Using an external web service  and local element declarations

    I am attempting to use (call) an external web service from workshop
    8.1. It seems that if the web service's schema contains local element
    declarations with the same name then workshop will generate incorrect
    JCX code because it doesn't scope the generated classes.
    I think the following simple example will do a better job explaining
    than that last paragraph ;). In the following WSDL, the element
    "testLocalDec" is used inside two different element types. In XML
    Schema this is not a problem because each one is "scoped" by the
    element types its included in. However, the generated JCX (listed
    second) simply contains the testLocalDec structure twice which causes
    problems in Java.
    Is there some workaround for this? Note that making this element
    declaration in the WSDL will not work because they are different
    structures (with different names).
    Also see my next email around using XMLBeans with external services
    (since that could be a workaround if I knew how to do it).
    thanks,
    dave
    *** sample WSDL ***
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions xmlns:tns="urn:tutorial/hello"
    targetNamespace="urn:tutorial/hello"
    xmlns:s="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:apachesoap="http://xml.apache.org/xml-soap"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <wsdl:types>
    <s:schema targetNamespace="urn:tutorial/hello">
         <s:element name="sayHelloResponse" >
    <s:complexType>
    <s:sequence>
    <s:element name="sayHelloReturn" type="s:string" />
    <s:element name="testLocalDec" >
    <s:complexType />
    </s:element>
    </s:sequence>
    </s:complexType>
    </s:element>
         <s:element name="sayHello" >
    <s:complexType>
    <s:sequence>
    <s:element name="caller" type="s:string" />
    <s:element name="testLocalDec" >
    <s:complexType >
    <s:sequence>
    <s:element name="different" type="s:string" />
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:schema>
    </wsdl:types>
    <wsdl:message name="sayHelloRequestMsg">
    <wsdl:part name="message" element="tns:sayHello"/>
    </wsdl:message>
    <wsdl:message name="sayHelloResponseMsg">
    <wsdl:part name="sayHelloReturn" element="tns:sayHelloResponse"/>
    </wsdl:message>
    <wsdl:portType name="HelloWorld">
    <wsdl:operation name="sayHello" >
    <wsdl:input message="tns:sayHelloRequestMsg" />
    <wsdl:output message="tns:sayHelloResponseMsg" />
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="HelloWorldServiceSoapBinding"
    type="tns:HelloWorld">
    <wsdlsoap:binding style="document"
    transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="sayHello">
    <wsdlsoap:operation soapAction=""/>
    <wsdl:input name="sayHelloRequestMsg">
    <wsdlsoap:body use="literal"/>
    </wsdl:input>
    <wsdl:output name="sayHelloResponseMsg">
    <wsdlsoap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="HelloWorldService">
    <wsdl:port binding="tns:HelloWorldServiceSoapBinding"
    name="HelloWorldService">
    <wsdlsoap:address
    location="http://localhost:18080/tutorial/HelloWorldService"/>
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    *** generated JCX ***
    package helloTest;
    * @jc:location
    http-url="http://localhost:18080/tutorial/HelloWorldService"
    * @jc:wsdl file="#HelloWorldServiceWsdl"
    * @editor-info:link source="HelloWorldService.wsdl" autogen="true"
    public interface HelloWorldServiceControl extends
    com.bea.control.ControlExtension, com.bea.control.ServiceControl
    public static class testLocalDec
    implements java.io.Serializable
    public static class sayHelloResponse
    implements java.io.Serializable
    public java.lang.String sayHelloReturn;
    public testLocalDec testLocalDec;
    public static class testLocalDec
    implements java.io.Serializable
    public java.lang.String different;
    * @jc:protocol form-post="false" form-get="false"
    public sayHelloResponse sayHello (java.lang.String caller,
    testLocalDec testLocalDec);
    static final long serialVersionUID = 1L;
    /** @common:define name="HelloWorldServiceWsdl" value::
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions xmlns:tns="urn:tutorial/hello"
    targetNamespace="urn:tutorial/hello"
    xmlns:s="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:apachesoap="http://xml.apache.org/xml-soap"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <wsdl:types>
    <s:schema targetNamespace="urn:tutorial/hello">
         <s:element name="sayHelloResponse" >
    <s:complexType>
    <s:sequence>
    <s:element name="sayHelloReturn" type="s:string" />
    <s:element name="testLocalDec" >
    <s:complexType />
    </s:element>
    </s:sequence>
    </s:complexType>
    </s:element>
         <s:element name="sayHello" >
    <s:complexType>
    <s:sequence>
    <s:element name="caller" type="s:string" />
    <s:element name="testLocalDec" >
    <s:complexType >
    <s:sequence>
    <s:element name="different" type="s:string" />
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:schema>
    </wsdl:types>
    <wsdl:message name="sayHelloRequestMsg">
    <wsdl:part name="message" element="tns:sayHello"/>
    </wsdl:message>
    <wsdl:message name="sayHelloResponseMsg">
    <wsdl:part name="sayHelloReturn"
    element="tns:sayHelloResponse"/>
    </wsdl:message>
    <wsdl:portType name="HelloWorld">
    <wsdl:operation name="sayHello" >
    <wsdl:input message="tns:sayHelloRequestMsg" />
    <wsdl:output message="tns:sayHelloResponseMsg" />
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="HelloWorldServiceSoapBinding"
    type="tns:HelloWorld">
    <wsdlsoap:binding style="document"
    transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="sayHello">
    <wsdlsoap:operation soapAction=""/>
    <wsdl:input name="sayHelloRequestMsg">
    <wsdlsoap:body use="literal"/>
    </wsdl:input>
    <wsdl:output name="sayHelloResponseMsg">
    <wsdlsoap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="HelloWorldService">
    <wsdl:port binding="tns:HelloWorldServiceSoapBinding"
    name="HelloWorldService">
    <wsdlsoap:address
    location="http://localhost:18080/tutorial/HelloWorldService"/>
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>

    Hi David,
    The folks in the workshop newgroup may have a suggestion, if you could
    try your post there:
    http://newsgroups.bea.com/cgi-bin/dnewsweb?cmd=xover&group=weblogic.developer.interest.workshop
    Thanks,
    Bruce
    David Rees wrote:
    >
    I am attempting to use (call) an external web service from workshop
    8.1. It seems that if the web service's schema contains local element
    declarations with the same name then workshop will generate incorrect
    JCX code because it doesn't scope the generated classes.
    I think the following simple example will do a better job explaining
    than that last paragraph ;). In the following WSDL, the element
    "testLocalDec" is used inside two different element types. In XML
    Schema this is not a problem because each one is "scoped" by the
    element types its included in. However, the generated JCX (listed
    second) simply contains the testLocalDec structure twice which causes
    problems in Java.
    Is there some workaround for this? Note that making this element
    declaration in the WSDL will not work because they are different
    structures (with different names).
    Also see my next email around using XMLBeans with external services
    (since that could be a workaround if I knew how to do it).
    thanks,
    dave
    *** sample WSDL ***
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions xmlns:tns="urn:tutorial/hello"
    targetNamespace="urn:tutorial/hello"
    xmlns:s="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:apachesoap="http://xml.apache.org/xml-soap"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <wsdl:types>
    <s:schema targetNamespace="urn:tutorial/hello">
    <s:element name="sayHelloResponse" >
    <s:complexType>
    <s:sequence>
    <s:element name="sayHelloReturn" type="s:string" />
    <s:element name="testLocalDec" >
    <s:complexType />
    </s:element>
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="sayHello" >
    <s:complexType>
    <s:sequence>
    <s:element name="caller" type="s:string" />
    <s:element name="testLocalDec" >
    <s:complexType >
    <s:sequence>
    <s:element name="different" type="s:string" />
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:schema>
    </wsdl:types>
    <wsdl:message name="sayHelloRequestMsg">
    <wsdl:part name="message" element="tns:sayHello"/>
    </wsdl:message>
    <wsdl:message name="sayHelloResponseMsg">
    <wsdl:part name="sayHelloReturn" element="tns:sayHelloResponse"/>
    </wsdl:message>
    <wsdl:portType name="HelloWorld">
    <wsdl:operation name="sayHello" >
    <wsdl:input message="tns:sayHelloRequestMsg" />
    <wsdl:output message="tns:sayHelloResponseMsg" />
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="HelloWorldServiceSoapBinding"
    type="tns:HelloWorld">
    <wsdlsoap:binding style="document"
    transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="sayHello">
    <wsdlsoap:operation soapAction=""/>
    <wsdl:input name="sayHelloRequestMsg">
    <wsdlsoap:body use="literal"/>
    </wsdl:input>
    <wsdl:output name="sayHelloResponseMsg">
    <wsdlsoap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="HelloWorldService">
    <wsdl:port binding="tns:HelloWorldServiceSoapBinding"
    name="HelloWorldService">
    <wsdlsoap:address
    location="http://localhost:18080/tutorial/HelloWorldService"/>
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    *** generated JCX ***
    package helloTest;
    * @jc:location
    http-url="http://localhost:18080/tutorial/HelloWorldService"
    * @jc:wsdl file="#HelloWorldServiceWsdl"
    * @editor-info:link source="HelloWorldService.wsdl" autogen="true"
    public interface HelloWorldServiceControl extends
    com.bea.control.ControlExtension, com.bea.control.ServiceControl
    public static class testLocalDec
    implements java.io.Serializable
    public static class sayHelloResponse
    implements java.io.Serializable
    public java.lang.String sayHelloReturn;
    public testLocalDec testLocalDec;
    public static class testLocalDec
    implements java.io.Serializable
    public java.lang.String different;
    * @jc:protocol form-post="false" form-get="false"
    public sayHelloResponse sayHello (java.lang.String caller,
    testLocalDec testLocalDec);
    static final long serialVersionUID = 1L;
    /** @common:define name="HelloWorldServiceWsdl" value::
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions xmlns:tns="urn:tutorial/hello"
    targetNamespace="urn:tutorial/hello"
    xmlns:s="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:apachesoap="http://xml.apache.org/xml-soap"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <wsdl:types>
    <s:schema targetNamespace="urn:tutorial/hello">
    <s:element name="sayHelloResponse" >
    <s:complexType>
    <s:sequence>
    <s:element name="sayHelloReturn" type="s:string" />
    <s:element name="testLocalDec" >
    <s:complexType />
    </s:element>
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="sayHello" >
    <s:complexType>
    <s:sequence>
    <s:element name="caller" type="s:string" />
    <s:element name="testLocalDec" >
    <s:complexType >
    <s:sequence>
    <s:element name="different" type="s:string" />
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:schema>
    </wsdl:types>
    <wsdl:message name="sayHelloRequestMsg">
    <wsdl:part name="message" element="tns:sayHello"/>
    </wsdl:message>
    <wsdl:message name="sayHelloResponseMsg">
    <wsdl:part name="sayHelloReturn"
    element="tns:sayHelloResponse"/>
    </wsdl:message>
    <wsdl:portType name="HelloWorld">
    <wsdl:operation name="sayHello" >
    <wsdl:input message="tns:sayHelloRequestMsg" />
    <wsdl:output message="tns:sayHelloResponseMsg" />
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="HelloWorldServiceSoapBinding"
    type="tns:HelloWorld">
    <wsdlsoap:binding style="document"
    transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="sayHello">
    <wsdlsoap:operation soapAction=""/>
    <wsdl:input name="sayHelloRequestMsg">
    <wsdlsoap:body use="literal"/>
    </wsdl:input>
    <wsdl:output name="sayHelloResponseMsg">
    <wsdlsoap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="HelloWorldService">
    <wsdl:port binding="tns:HelloWorldServiceSoapBinding"
    name="HelloWorldService">
    <wsdlsoap:address
    location="http://localhost:18080/tutorial/HelloWorldService"/>
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>

Maybe you are looking for