SOAP Message abfangen und auslesen

Status
Nicht offen für weitere Antworten.

DayXtry

Mitglied
Hi,
hab ein rießen Problem mit eBay und SOAP Message empfangen -> auslesen.

Also folgendes. Wenn man bei eBay ein Produkt erfolgreich verkauft hat, dann wird ja eig. dem Verkäufer eine email mit der Bestätigung zu gesendet. Dies kann man mittels eBay API eben umschreiben und sich die SOAP Message auf den Server schicken lassen, um dort damit weiter zu arbeiten...

Das sieht wie folgt aus:
Code:
        // Register the eBay user and the Application
        ...
        ...
        ...

        // Create and Set the App Level Preference
        ApplicationDeliveryPreferencesType appDeliveryPref = new ApplicationDeliveryPreferencesType();


        org.apache.axis.types.URI uri = new org.apache.axis.types.URI();

        try {
            //uri.setScheme("mailto");
            
            // URL from Webserver where the application runs
            uri.setPath("http://138.232.185.227:8084/notification2/");
            //uri.setPath("mailto:juergen.ulrich1@web.de");
        } catch (Exception e) {
            e.printStackTrace();
        }


        appDeliveryPref.setApplicationURL(uri);
        appDeliveryPref.setNotificationPayloadType(NotificationPayloadTypeCodeType.eBLSchemaSOAP);
        appDeliveryPref.setApplicationEnable(EnableCodeType.Enable);
        api.setApplicationDeliveryPreferences(appDeliveryPref);

        ...
        ...
        ...

Wie man bei der auskommentierten Zeile sieht, hab ich versucht mir die SOAP Message an eine Email Adresse zu schicken. Das klappt wunder bar,...ich bekomm also den Inhalt der SOAP Message na die Email Adresse geschickt. Mein Problem ist nur, dass wenn ich den Server angeb, dass ich dann nix bekomm. Bzw. vielleicht bekomm ich ja was, und ich reagier nur falsch drauf. Aber ich hab zum testen des ganzen ein bsp. Listener von eBay verwendt.

Hier mal die doPost()-Methode:
Code:
    /** Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        try {
            // Getting The Header Of The Soap request
            MimeHeaders headers = getHeaders(request);
            
            // Get the body of the SOAP request
            InputStream is = request.getInputStream();
                  /*
          SOAPMessage message = SOAPUtil.setMessage(is,headers);
          OutputStream os = response.getOutputStream();
          message.writeTo(os);
          os.flush();
                   */
            
            // Process Notification http header
         
            String notiEvent = null;
            java.util.Enumeration headenum = request.getHeaderNames();
            while(headenum.hasMoreElements()){
                String headname = (String)headenum.nextElement();
                String headvalue = request.getHeader(headname);
                if (headname.equalsIgnoreCase("SOAPACTION")){
                    int last = headvalue.lastIndexOf("/");
                    notiEvent =headvalue.substring(last+1,headvalue.length());
                    System.out.println(headname + " : " + headvalue);
                    System.out.println("NOTIFICATION EVENT : " + notiEvent);                    
                }
            }
            String rootElement= null;
                  
                  for ( int i = 0; i< noticationevents.length; i++) {
                      String eventname = noticationevents[i];
                          if ( notiEvent.equalsIgnoreCase(eventname)){
                                  rootElement =  noticationtopelements[i];
                                  System.out.println("ROOTELEMENT : " +rootElement);
                          }
                  }
                   
            // read input string
            // Es muss eine Methode onMessage enthalten sein, welche aufgerufen und abgearbeitet wird,
            // sobald eine Nachricht eintrifft
            Object obj =  onMessage(is, rootElement);//"GetItemResponse" );
            ItemType itemtype =null;
            if (obj !=null && obj instanceof GetItemResponseType) {
                GetItemResponseType girt = (GetItemResponseType)obj;
                traverseItem(girt);
                System.out.println( "GET EVENT NAME : "+ girt.getNotificationEventName());
                itemtype = girt.getItem();
                PrintWriter pw = response.getWriter();
                pw.println("<html><head>");
                pw.println("</head><body><h3> the itemId is " + itemtype.getItemID()+"</h3>");
                pw.println("</bodY></html>");    
            }
            
            if (obj !=null && obj instanceof GetItemTransactionsResponseType) {
                GetItemTransactionsResponseType girt = (GetItemTransactionsResponseType)obj;
                itemTransac(girt);
                System.out.println( "Notification: "+ girt.getNotificationEventName());     
            }
            
        }catch (Exception e) {
            e.printStackTrace();
            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
        }
        //response.setStatus(HttpServletResponse.SC_OK);
    }

Ich wäre wirklich sehr sehr sehr glücklich über jede Hilfe, die ich bekommen kann,...und wenn sie noch so klein sein mag.

Mit freundlichen Grüßen
DayXtry

PS.: Sollte noch mehr Code zum Verständnis benötigt werden, einfach bescheid sagen. Die Kommentare im Code wurden von mir verfasst, also wenn da fehler enthalten sein sollten, nicht wundern (da eBay einen etwas mager kommentierten Code zur Verfügung stellt). (ist wirklich im wahrsten Sinne des Wortes ein Hilfeschrei)
 

DayXtry

Mitglied
Ok,...hab da noch was rausgefunden...wenn ich meinen Tomcat starte kommt da folgendes:

Code:
22.01.2007 13:46:46 org.apache.catalina.core.StandardContext listenerStart
SCHWERWIEGEND: Error configuring application listener of class com.sun.faces.config.ConfigureListener
java.lang.NoClassDefFoundError: javax/faces/FacesException
        at java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2357)
        at java.lang.Class.getConstructor0(Class.java:2671)
        at java.lang.Class.newInstance0(Class.java:321)
        at java.lang.Class.newInstance(Class.java:303)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3618)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4104)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
        at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:894)
        at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:857)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:475)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1102)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1020)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
        at org.apache.catalina.core.StandardService.start(StandardService.java:450)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:683)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:537)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)

Hab mal per google geschaut, und dann steht da was, dass mir die jsf-api.jar und die jsf-impl.jar fehlen,...allerdings sind die bei mir im Verzeichnis lib des projektes enthalten...

Kann es sein, dass der Listener deswegen nicht anspricht?

Danke schon mal für eure Antworten

Gruß DayXtry
 

DayXtry

Mitglied
ok,...ich hab in der web.xml jetzt auch folgendes stehen:

Code:
<listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>

Allerdings besteht das Problem der Fehlerausgabe weiterhin.

Allerdings empfange ich definitiv etwas von eBay. Sobald ich bei eBay jetzt ein Produkt varkauft habe, wird bei mir automatisch die index.jsp aufgerufen,...Ich denke mal, dass die index.jsp aufgerufen wird, da der Listener nicht richtig funktioniert. Ansonsten müsste er ja in die doPost()-Methode springen.

Zur erläuterung, warum er in die index.jsp springt:

Ich registriere ja meine Application bei eBay mit der angabe des Pfades zu meiner Application (http://138.232.185.227:8084/notification2). Da das Verzeichnis notification2 das Hauptverzeichnis des Projektes ist, sucht er dort nach der index.jsp. Hätte ich nun einen Listener (der funktioniert -.-) würde er auf den Listener reagieren.

Hat denn wirklich keiner n Tipp für mich? Ist wirklich sehr sehr wichtig.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D SOAP-Message von ebay abfangen (Notification) Netzwerkprogrammierung 2
D SOAP Message deserialisieren Netzwerkprogrammierung 2
M SocketError bei Aufruf eines SOAP-Servers Netzwerkprogrammierung 8
J Client-Server und SOAP Netzwerkprogrammierung 23
U Client Soap Verbindung wieder schließen Netzwerkprogrammierung 0
F Tipps zum Thema Server/Client vie SOAP Netzwerkprogrammierung 0
S soap kann nicht zu 127.0.0.1:8090 unter Windows verbinden Netzwerkprogrammierung 2
M SOAP & Performance? Netzwerkprogrammierung 14
P Atlassian Jira und die SOAP Schnittstelle Netzwerkprogrammierung 2
N Datenaustausch zwischen Java-GUI und PHP-Programm über SOAP Netzwerkprogrammierung 19
0 soap client ohne WSDL Netzwerkprogrammierung 3
R Anlaufprobleme mit SOAP Netzwerkprogrammierung 13
cowabunga1984 Transferierte Datenmenge eines SOAP Clients (JAX-WS) anzeigen Netzwerkprogrammierung 2
J Stubs für SOAP-Webservice generieren. Ich bekomme es einfach nicht hin... Netzwerkprogrammierung 3
M SOAP Messaging Fehler Netzwerkprogrammierung 10
reibi Börsenkurse zB mit SOAP beziehen Netzwerkprogrammierung 3
S Applet und JWS auf Apache-Axis (SOAP) Netzwerkprogrammierung 8
J Antwort eines Soaprequests parsen mittels org.apache.soap Netzwerkprogrammierung 2
D SOAP -Server - Verständnisfragen. Netzwerkprogrammierung 4
S SOAP Attchmentsa encoding base64 Netzwerkprogrammierung 3
G SOAP-JAVA Netzwerkprogrammierung 13
H SOAP-Nachricht mit Java Netzwerkprogrammierung 8
T SOAP / IIS Netzwerkprogrammierung 3
M Objekte senden zwischen Java und PHP mit SOAP Netzwerkprogrammierung 9
A protokoll unter soap Netzwerkprogrammierung 3
T Broadcast-message über spez. Netzwerk-Schnittstelle Netzwerkprogrammierung 1
D Socket Message an einen Server senden? Netzwerkprogrammierung 8
I SocketClient Manipulierte Message Netzwerkprogrammierung 5
C Socket Datagram-Sockets mit integrierter Message Queue? Netzwerkprogrammierung 2
A Socket Server: Message an verschiedene Clients senden Netzwerkprogrammierung 4
F Message Queue 4.4 Netzwerkprogrammierung 2
T E-Mail über javax.mail.Message Netzwerkprogrammierung 2
T Message-Protokoll: Verbesserungsmoeglichkeiten im Ansatz? Netzwerkprogrammierung 3
G JavaMail und Session/Message Problem Netzwerkprogrammierung 2
M Paktete abfangen und zu eigenem Programm umleiten - wie? Netzwerkprogrammierung 5
Hindi93 Abbruch eines Programmes abfangen Netzwerkprogrammierung 8
J net send Popups abfangen und in eigenem Programm ausgeben. Netzwerkprogrammierung 12
T Wie connection Reset abfragen/abfangen? Netzwerkprogrammierung 10
M Ethernet Daten abfangen Netzwerkprogrammierung 13
M Probleme beim Abfangen von Streams Netzwerkprogrammierung 5
W UDP Pakete abfangen Netzwerkprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben