Global JAX-WS Handler::is such a thing possible in ORACEL OSB?

Hi
Some of you may be familiar with the Handler mechanism of JAX-WS.
My aim is to be able to define a GLOBAL handler for ALL web services on the server side.
Requirement:
========
Simply put, the requirement is to be able to inspect incoming SOAP headers for ALL
services (proxy, business) of the OSB and to be able to propagate an expected element in the incoming header to all "downstream" web service calls.
In other words, if I have an element in my SOAP header in the request to my proxy or business
service, I would like to be able to have the same generic piece of code that copies said element it to ALL outgoing SOAP Web Service calls.
Proposed Solution:
===========
My natural approach was the JAX-WS handler mechanism.
I have proven that it can work for one web service that I have written (i.e. intercept the incoking SOAP and outgoing SOAP).
I can extract the element, copy it, and enrich the outgoing with it.
Question:
======
1. How do i extend my single handler for JAX-WS to ALL web services and not just one?
2. How can i use such a global mechanism in the OSB if at all possible?
N.B. I am not an OSB expert. There is no requirement for this to be a JAX-WS handler. I only mentioned it as this is what I know and what seemed logical given my knowledge.

You can write a simple osb proxy which can inspects the header , extract it , enrich it and then route to the relevant downstream proxy. This would require all the clients to call this proxy . Is that OK for you ?

Similar Messages

  • JAX-RPC handler example

    Hi
    Does anyone have any example on JAX-RPC handler method? I'm looking for one which
    returns more than one attachment. My attachments in this case are images.
    Thanks alot.
    grazieee
    ps: I'm using Weblogic workshop 8.1 sp2

    Just figured it out.
    Didn't realize there were separate handleRequest() and handleResponse() methods.
    We must have implemented our Handler classes in a bit of a nonstandard way...we used two separate classes, put our handler functionality in the "invoke(MessageContext mc)" method, and an indicated which class handled requests and responses in the Deployment Descriptor.
    Must be an "Axis" thing.
    Sorry for as the inconvenience.

  • Intercepting SOAP XML message in JAX-RPC Handler and calling a diff method

    Is it possible to intercept the SOAP XML message in the JAX-RPC handler and avoid the serialization and deserialization (OR avoid XML data binding)
    Here is a more detail question
    My web service has two methods
    1. One Method which accepts Java Object (this object is mapped with a Schema
    Complex Type Element in my WSDL file)
    2. Second method which accept simple String type.
    I want my web service client to send java object (using the first method), so that the Input gets validate in the WSDL itself (before it hits the actual web service) but once the request gets validated i want to pass that converted SOAP XML String (on the Server side using JAX-RPC handler) to the Second method.

    The answer to this is that the WSDL had
    elementFormDefault="qualified"
    in the schema.
    Changing to unqualified resulted in the desired output.
    Note: The service was changed to handle both cases.

  • HT3209 If you buy a movie on the IPad in HD(720p) are you able to download in 1080p resolution? Or do you have to buy the 1080p or is there even such a thing?

    If you buy a movie on the IPad in HD(720p) are you able to download in 1080p resolution? Or do you have to buy the 1080p or is there even such a thing?

    As far as I can tell, yes. I purchased an HD movie on my old Apple TV 2 (720p) and just upgraded to the Apple TV 3 (1080p) and it displays 1080p on the info sheet and plays in that quality, so I have a feeling the same should go for you with your iPad.

  • Glassfish can't find JAX-WS handler classes

    Hi,
    Created a JAX-WS Stateless EJB3 Endpoint, configured JAX-WS handlers using a handler chain XML, deployed on Glassfish 3.1.2. Glassfish won't find any of the 3 handler classes. I've verified and reverified that the handler XML uses the correct package and class name. The first two of three handlers are part of the project while the third one is in a jar in the lib, so obviously they are all on the class path.
    Any help is greatly appreciated. Google searches showed that people had similar issue before but no one seemed to have found a solution (or if they did they did not post it back).
    Also posted [http://www.java.net/forum/topic/glassfish/metro-and-jaxb/glassfish-cant-find-jax-ws-handler-classes]
    [#|2012-04-03T21:59:11.769-0400|SEVERE|glassfish3.1.2|javax.enterprise.webservices.org.glassfish.webservices|_ThreadID=16;_ThreadName=Thread-3;|Unable to load handler class edu.certification.abhijitsarkar.ocewsd.jaxws.ejb.webservice.handler.ProgrammaticAuthenticationHandler
    java.lang.ClassNotFoundException: edu.certification.abhijitsarkar.ocewsd.jaxws.ejb.webservice.handler.ProgrammaticAuthenticationHandler
         at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1509)
         at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1359)
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java:247)
         at org.glassfish.webservices.WsUtil.processConfiguredHandlers(WsUtil.java:2141)
         at org.glassfish.webservices.WsUtil.configureJAXWSServiceHandlers(WsUtil.java:2193)
         at org.glassfish.webservices.EjbRuntimeEndpointInfo.prepareInvocation(EjbRuntimeEndpointInfo.java:266)
         at org.glassfish.webservices.EjbRuntimeEndpointInfo.initRuntimeInfo(EjbRuntimeEndpointInfo.java:343)
         at org.glassfish.webservices.WebServiceEjbEndpointRegistry.registerEndpoint(WebServiceEjbEndpointRegistry.java:129)
         at com.sun.ejb.containers.BaseContainer.initializeHome(BaseContainer.java:1181)
         at com.sun.ejb.containers.StatelessSessionContainer.initializeHome(StatelessSessionContainer.java:202)
         at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:167)
         at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:230)
         at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:299)
         at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:105)
         at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:186)
         at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:264)
         at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:460)
         at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
         at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)
         at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)
         at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)
         at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085)
         at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)
         at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)
         at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259)
         at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461)
         at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212)
         at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)
         at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
         at com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354)
         at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
         at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
         at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
         at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
         at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
         at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
         at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
         at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
         at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
         at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
         at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
         at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
         at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
         at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
         at java.lang.Thread.run(Thread.java:680)
    Endpoint:
    @Stateless
    @WebService(name="Time", serviceName="TimeService", portName="TimeServicePort")
    @HandlerChain(file = "/handler-chain.xml")
    @DeclareRoles({ "guest", "user" })
    public class TimeService {
    // code, probably irrelevant to the issue
    handler-chain.xml:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <javaee:handler-chains xmlns:javaee="http://java.sun.com/xml/ns/javaee"
         xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <javaee:handler-chain>
              <javaee:handler>
                   <javaee:handler-class>edu.certification.abhijitsarkar.ocewsd.jaxws.ejb.webservice.handler.HttpBasicAuthenticationHandler
                   </javaee:handler-class>
              </javaee:handler>
              <javaee:handler>
                   <javaee:handler-class>edu.certification.abhijitsarkar.ocewsd.jaxws.ejb.webservice.handler.ProgrammaticAuthenticationHandler
                   </javaee:handler-class>
              </javaee:handler>
              <javaee:handler>
                   <javaee:handler-class>edu.certification.abhijitsarkar.ocewsd.jaxws.utility.handler.SOAPRequestHandler
                   </javaee:handler-class>
              </javaee:handler>
         </javaee:handler-chain>
    </javaee:handler-chains>

    Ok, I found the answer... it is actually a classic bug. The code that is loading the handler is located in WsUtil. Here is a link to version 3.1.1 of that code, although I am running 3.1.2.
    http://grepcode.com/file/repo1.maven.org/maven2/org.glassfish.webservices/jsr109-impl/3.1.1/org/glassfish/webservices/WsUtil.java/
    The method and line that blows up is org.glassfish.webservices.WsUtil.processConfiguredHandlers(WsUtil.java:2141). On that line (in version 3.1.2 - remember the link above is 3.1.1), there is a call to "Class.forName". It turns out that it is passing the exact UNTRIMMED name that is found in the generated JAX-WS handler-chain XML file (it was generated from wsimport in my case).
    In my JAXWS customization file, I had placed the handler name "prettily" on its own line, with a carriage return like so:
    (leading whitespace here - but these forums don't show whitespace)<javaee:handler-class>myHandler
    (leading whitespace here - but these forums don't show whitespace)</javaee:handler-class>
    That extra whitespace is NOT BEING TRIMMED in the code responsible for parsing the file. That is the problem, plain and simple. I fixed that:
    <javaee:handler-class>myHandler</javaee:handler-class>
    ... and the problem went away.
    To confirm this, I looked in the logs of the Glassfish server at all the times it complained it could not load class "myHandler", and found it was actually complaining about "myHandler " (i.e. with many spaces).
    Hope this helps someone.
    Edited by: Bland on Jun 14, 2012 2:41 PM
    Edited by: Bland on Jun 14, 2012 2:43 PM
    Edited by: Bland on Jun 14, 2012 2:44 PM

  • Is there such a thing as a malware keylogger for Macs?

    Hi all,
    My partner, using the iMac running 10.4.8, is a regular eBay seller. Tonight at around 2300 local time her account was (and is still) hijacked. For those not knowing the workings of eBay it requires a password login just like banking, credit cards, etc. The password has been changed by the hijacker, hence she is now locked out of her account. We are now concerned that, for her account to have been hijacked, her password was gleaned via a keylogger.
    Is this possible or is it more likely that a password generator was used? (Or that she was less than cautious in responding to a spoof or phish? - Don't tell her I said that, she'll shout at me!)
    How would we know if such a thing was lurking, if they exist?
    Many thanks in advance,
    Adrian

    There are several keyloggers that run on Mac OS X --- logKext, for instance; Google "keylogger Mac OS X" if you want to look over the 1,010,000 hits that returns --- but all keyloggers of which I'm aware require root user access to the Mac to install. You can always check if the roor user is enabled on the Mac and disable it is it is; see About the root User and How to Enable It. You can also check System Preferences> Security and make sure the Firewall is turned on with services tunred off (particularly Apple Remote Desktop and ssh).
    Without knowing the details you refer to in your latter post, I'd agree that a password generator or plain old guessing is the more likely source of the vulnerability. Without needing to ask her the details, ask your partner if her various accounts use a password or a passphase. A password , anything based recognizably on a dictionary word (even with intentional misspellings) is vulnerable to guessing. A passphase (taking the first letters of the words in a phase, preferablly one including numbers and/or punctation) is much harder to guess. It's also worth warning her against using the same passphase on all her accounts; that's actually a common response to having to remember 24 different passwords, but it has an obvious problem if one account is broken.

  • Is there such a thing as a 3D flash file?

    I have heard this term thrown around but was sceptical if there was such a thing as a 3D flash file. So....is there?
    TIA
    Dean

    You can create 3D things with the newer versions of Flash and there are third party classes such as PApaervison 3D that also provide 3D capabilities for Flash files.  So yes, there is such a thing, but I wouldn't say it is called a "3d Flash file". It is just a Flash file that has 3D features designed into it.

  • Is there such a thing as to much memory for my macbook pro?

    I wanted to buy this caddy and install a SSD where my dvd/cd drive is. just curious is there such a thing as to much memory? I dont want to mess up my motherboard  or fry anything. The youtube video i saw has a guy swapping out his Dvd/cd drive with a ssd and his macbook pro (which is same model as mine) had no problems just want a second opinion. Right now I have a 730gb HD
    this is the link for the caddy.
    http://www.amazon.com/gp/product/B004XIUQYA?ie=UTF8&tag=shopfaster0c-20&linkCode =shr&camp=213733&creative=393177&creativeASIN=B004XIUQYA&=electronics&qid=135673 8142&sr=1-9&keywords=optical+drive+adapter

    If I were you, since you'll want the SSD to be the boot drive, I would install the SSD in the current HD bay and put the spinning drive in the optical bay. MacBook Pros have a preference for the boot drive to be in the main bay and you're just asking for trouble if you install it in the optical bay.
    I didn't look at your Amazon link, but I can recommend OWC's Data Doubler - likely higher in price than your Amazon choice, but I don't know of anyone who has had problems with them.
    And, no, there's no such thing as too much storage space!
    Good luck,
    Clinton

  • Is there such a thing as a byte array

    I have an array of chars in my c code which I need to pass an array to from my Java code. I was just wondering what the equivalent is in Java is there such a thing as a byte[]

    You have declared param as an int and therefore the compiler notice that the assignment to that byte array may result in loss of some bits. To prevent the warning you need to do an explicit cast to byte:
    m_writeBuffer[0] = (byte)(param>>8);
    m_writeBuffer[1] = (byte)(param & 0x00FF);Not that you would have to do the same even if param was declared as byte because java performs all operation on bytes as int.

  • Is there such a thing as "Apple web security"  I have a pop up trying to get me download something

    Is there such a thing as "Apple web security"  I have a pop up trying to get me download something. It says Apple Web Security detected Trojans...thanks

    No.  Set your browser settings to not receive pop ups.  It's done through your browser settings.

  • Is there such a thing as a "silver iPod"?

    Is there such a thing as a "silver iPod"?
    I've heard of the white and black versions, but a friend tells me there's a silver version available.
    Is she talking rubbish?

    The only all silver iPod to date was the iPod Mini which if memory serves me right came in Silver, Blue, Green and Pink. Full size iPods and Nanos have black or white fronts with a metal (silver if you like) back.

  • Is there such a thing as a universal color laserjet driver?

    Is there such a thing as a universal color laserjet driver?

    Greetings,
    Yes, there is a UPD for color LaserJets.  Please look at the following URL:
    http://h20338.www2.hp.com/Hpsub/cache/494717-0-0-2​25-121.html?jumpid=reg_R1002_USEN
    ---- If my answer was helpful please click the "Kudos" star.
    If your problem is solved please click the "Accept as Solution" button ---->
    I work for HP
    ~K

  • Is there such a thing as a USB WIFI adapter that works with OS X 10.9?

    Is there such a thing as a USB WIFI adapter that works with OS X 10.9? I have tried 3 different models, none of which were compatible. The built-in WIFI card in a 2012 Mac Pro is absolutely crap (0/10 on the performance scale). Any recommendations?

    Hey everyone, yes I have installed the drivers properly. I've used an ASUS, Bolse, and EDIMAX adapter. Some had a 10.8 driver, some had 10.9. After reaching out to customer support for each and every one of these companies for help, and through multiple returns, I have not gotten anywhere with any of the drivers or products.
    It's getting ridiculously hard to stay an Apple customer when the quality of their products are getting worse and worse, which leaves me no choice but to go to third parties to replace the faulty hardware.
    And honestly I'm just sick of calling India every day to get my issues resolved.

  • I'm deaf in one ear and need a stereo-to-mono earbud so I can use my iPod and iPhone. It is not good being able to hear only one channel. Can Apple consider making such a thing for those of use who need such a thing?

    I'm deaf in one ear and need a stereo-to-mono earbud so I can use my iPod and iPhone. It is not good being able to hear only one channel. Can Apple consider making such a thing for those of use who need such a thing?

    bassvid wrote:
    Thanks...now I need to do something about the iPod.
    I'm not sure which version iPod you have, but I just checked my iPod nano (current generation) and it also has a Mono Audio setting in Settings>General>Accessibility.

  • TS2446 Is there such a thing as Apple Support Team asking for my email and password?

    Is there such a thing as Apple Support Team asking for my email and password?

    No.
    It's a scam. Delete it.

Maybe you are looking for

  • Appending a dynamic where clause in VO

    Hi All I am trying append a where clause dnamically to a VO The query is SELECT DISTINCT pvsa.org_id AS OrgId, GECMPoVendorsEO.VENDOR_ID AS SupplierId, GECMPoVendorsEO.VENDOR_NAME AS SupplierName, GECMPoVendorsEO.STANDARD_INDUSTRY_CLASS AS StdIndustr

  • Extracting from a file

    //this line not working, why? 1.) BufferedReader in = new BufferedReader(new FileReader("icecream.txt")); //this works 2.) UniReader in = new UniReader("icecream.txt"); // both the lines try to do the same thing right?

  • The type of LCD of T61-AP4? Thanks

    There is something wrong with the LCD, and I want to know the LCD's type, but not its FRU.. It is T61 8889-AP4, 1400*1050,14'1 Waiting online,Thanks.

  • "older" iPhoto version can't work with Leopard 10.5.3

    Leopard newby, just upgraded from Tiger. I see that my previous iPhoto version doesn't work with Leopard. Is this Apple's way to make me pay $79 for iLife, or is there a free iPhoto version available that works with Leopard?

  • If Airtunes accesses my iTunes, will it still play on iMac simultaneously?

    I was just wondering if I had Airtunes and was using the iPhone remote app to play through my living room speakers, will music still play on my iMac at the same time? As my iMac is connected to some pretty decent speakers, it would be nice to have th