1 2 Previous Next 16 Replies Latest reply on Sep 15, 2014 2:43 PM by Mark Reichman

    Internal Server Error

    Mark Reichman

      OSB 12.1.3

      JDEV 12.1.3

       

      Implementation:  Proxy Service -> pipeline(request side has service callout) -> route -> Business Service

       

      When I run from the proxy I get the errors below.

      When run from the pipeline the message body coming back on the pipeline response side looks fine.  The only difference in the body on the pipeline response side, as opposed to a direct response from the web service using SOAPUI, is the OSB moves the namespaces around to the soap body from the soap envelope and has "http://schemas.xmlsoap.org/soap/envelope/" twice (envelope, body) with two different predicates (soapenv, soap).  Not sure why the OSB is doing this, but it is valid xml and should be OK.   Is this the reason I'm getting OSB-380001 Internal Server Error when run from the proxy because the proxy/WSDL is not expecting this?  When I run from the pipeline I don't get an error basically everything works roundtrip to the pipeline response side.  This namespace is the only difference I can find.  If I just have a proxy and a business service with no pipeline everything works fine round trip.  Or, maybe the issue is something else entirely...

       

       

      Here is what the response SOAP BODY looks like when SOAPUI directly connects to the web service - no OSB:

       

      <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

         <soap:Body>

            <GetSubItemListAsOfResponse xmlns="http://prosight.com/type/Portfolios/5.0/psPortfoliosSubItem">

               <GetSubItemListAsOfResult>

                  <psPortfoliosSubItemInfo>

                     <SubItemType>Highway Segments</SubItemType>

       

      Here is what the response SOAP body looks like if I go through the OSB on the pipeline response side:

       

      <soapenv:Envelopexmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
      <soapenv:Header/>
      <soap:Bodyxmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <GetSubItemListAsOfResponsexmlns="http://prosight.com/type/Portfolios/5.0/psPortfoliosSubItem">
      <GetSubItemListAsOfResult>
      <psPortfoliosSubItemInfo>
      <SubItemType>Highway Segments</SubItemType>

       

      When run from the proxy in OSB I get these errors.  First is JDev message log and second is osb response document error when run from proxy.

       

      The application can be accessed at location:

      http://127.0.0.1:7101/lwpfconsole/LoginRedirectServlet?p1=d2VibG9naWM=&p2=QHBwbGVwaWU=&page=test_console&rtc_resourcetype=ProxyService&rtc_resourcename=OppmGis%2FProxyServices%2FpsPortfoliosSubItemSPS

      <com.bea.alsb.common.catalog.CatalogLogger> <CatalogLogger> <log> <OSB-382191>

      com.bea.wli.sb.pipeline.PipelineException: Transport error (error code=OSB-380001): Internal Server Error

        at com.bea.wli.sb.pipeline.components.Node.processMessage(Node.java:94)

        at com.bea.wli.sb.pipeline.PipelineContextImpl.execute(PipelineContextImpl.java:905)

        at com.bea.wli.sb.pipeline.components.Router.processMessage(Router.java:205)

        at com.bea.wli.sb.pipeline.MessageProcessor.processResponse(MessageProcessor.java:228)

       

      <soapenv:Envelopexmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
      <soapenv:Body>
      <soapenv:Fault>
      <faultcode>soapenv:Server</faultcode>
      <faultstring>OSB-380001: Internal Server Error</faultstring>
      <detail>
      <con:faultxmlns:con="http://www.bea.com/wli/sb/context">
      <con:errorCode>OSB-380001</con:errorCode>
      <con:reason>Internal Server Error</con:reason>
      <con:location>
      <con:node>RouteNode1</con:node>
      <con:path>response-pipeline</con:path>
      </con:location>
      </con:fault>
      </detail>
      </soapenv:Fault>
      </soapenv:Body>
      </soapenv:Envelope>

      ...

        • 1. Re: Internal Server Error
          User10084077-Oracle

          Hi,

          Can you attach server logs?

          • 2. Re: Internal Server Error
            User10084077-Oracle

            Hi,

            Can you try sending payload(same as soap ui) using test-console from business service? It may be possible that the business service is not configured properly or expected payload is not sent.

            • 3. Re: Internal Server Error
              Mark Reichman

              I guess the help I could use here is troubleshooting a OSB-380001 error?  Where to start since the error message is non descriptive and absolutely no help at all. 

               

              Everything works when using osb test console from pipeline or business service.  Does not work fine when using test console from proxy. One of the methods in the proxy does work round trip perfectly, but that method doesn't require the service callout return session id in its transport header like the other methods.  I know the service callout must be working since all the method work from the pipeline which is where the service callout is located ofcourse.

              • 4. Re: Internal Server Error
                Mark Reichman

                I now know what the problem is however I do not know the resolution.

                 

                When I run from the pipeline the response side is doing a service callout to get a session id.  The response side of the service callout is putting the session id into a $sessionID variable.  In the route node after the pipeline the a transport header action is setting a cookie with the $sessionID.  This works when run from the pipeline.  I can see the cookie value in the transport header using $outbound variable in a log action in the route request side.  However, when I run this from the proxy there is no cookie value and $sessionID is null ? 

                • 5. Re: Internal Server Error
                  Mark Reichman

                  Its not doing the service callout when run from the proxy only when run from the pipeline?  I have "configure body" and  body = body for request and response? What else should I set?

                  • 6. Re: Internal Server Error
                    abhay kumar

                    Can try checking the box Configure soap body in the service callout option if you haven't done so ?

                    • 7. Re: Internal Server Error
                      Mark Reichman

                      I know this sounds like I'm all over the place, which I am, but I have narrowed this down even further.  The service callout is working perfectly when I run from the proxy service or the pipeline.  I am getting identical responses on the response side.  I am using this code below to get the ASP.NET_SessionId=fbyqha3mlra3fivd52fmek45 from response transport header.  This code works when run from the pipeline, but returns null when run from the proxy service.  Or, the assign action containing this code is not putting the session id into a variable when run from the proxy service.  The way this is behaving seems to be buggy behavior since this should work the same regardless of where I am running this from the proxy or the pipeline.  Right?

                       

                      {fn:substring-after(fn:substring-before($inbound/ctx:transport/ctx:response/tp:headers/tp:user-header[@name='Set-Cookie']/@value, '; path'), '<value>')}

                       

                      I have captured the result of the $outbound variable when I run from the proxy and pipeline and the contents are identical except for the SessionID ofcourse.  The session id is stored in the "set-cookie" value attribute.  See below. 

                       

                       

                      <stages.logging.runtime.LogRuntimeStep> <LogRuntimeStep> <processMessage> < [PipelinePairNode2, request-N55fceafe.6f3d50b0.0.147b6f68713.N7f65, Stage1, REQUEST] <con:endpoint name="BusinessService$OppmGis$BusinessServices$psPortfoliosSecuritySBS" xmlns:con="http://www.bea.com/wli/sb/context">

                        <con:service>

                          <con:operation>Login</con:operation>

                        </con:service>

                        <con:transport>

                          <con:uri>http://wvmoap114/ProSightWS/psPortfoliosSecurity.asmx</con:uri>

                          <con:mode>request-response</con:mode>

                          <con:qualityOfService>best-effort</con:qualityOfService>

                          <con:request xsi:type="http:HttpRequestMetaData" xmlns:http="http://www.bea.com/wli/sb/transports/http" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

                            <tran:headers xsi:type="http:HttpRequestHeaders" xmlns:tran="http://www.bea.com/wli/sb/transports">

                              <http:Content-Type>text/xml; charset=utf-8</http:Content-Type>

                              <http:SOAPAction>"http://prosight.com/wsdl/5.0/psPortfoliosSecurity/Login"</http:SOAPAction>

                            </tran:headers>

                            <tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">utf-8</tran:encoding>

                          </con:request>

                          <con:response xsi:type="http:HttpResponseMetaData" xmlns:http="http://www.bea.com/wli/sb/transports/http" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

                            <tran:headers xsi:type="http:HttpResponseHeaders" xmlns:tran="http://www.bea.com/wli/sb/transports">

                              <tran:user-header name="X-AspNet-Version" value="2.0.50727"/>

                              <tran:user-header name="X-Powered-By" value="ASP.NET"/>

                              <http:Cache-Control>private, max-age=0</http:Cache-Control>

                              <http:Content-Length>322</http:Content-Length>

                              <http:Content-Type>text/xml; charset=utf-8</http:Content-Type>

                              <http:Date>Thu, 04 Sep 2014 11:44:53 GMT</http:Date>

                              <http:Server>Microsoft-IIS/7.5</http:Server>

                              <http:Set-Cookie>&lt;cookie-values xmlns="http://www.bea.com/wli/sb/transports/http">

                        &lt;value>ASP.NET_SessionId=fbyqha3mlra3fivd52fmek45; path=/; HttpOnly&lt;/value>

                      &lt;/cookie-values></http:Set-Cookie>

                            </tran:headers>

                            <tran:response-code xmlns:tran="http://www.bea.com/wli/sb/transports">0</tran:response-code>

                            <tran:response-message xmlns:tran="http://www.bea.com/wli/sb/transports">OK</tran:response-message>

                            <tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">utf-8</tran:encoding>

                            <http:http-response-code>200</http:http-response-code>

                          </con:response>

                        </con:transport>

                        <con:security>

                          <con:doOutboundWss>true</con:doOutboundWss>

                        </con:security>

                      </con:endpoint>>

                      • 8. Re: Internal Server Error
                        Vlad Dyuzhev

                        The way this is behaving seems to be buggy behavior since this should work the same regardless of where I am running this from the proxy or the pipeline.  Right?

                         

                        Right.

                         

                        There are no miracles. If the same code behaves differently, something must be different in the input. I would dump the whole $input in both cases, and compare them value by value. If those are the same as well, I would declare it a bug and took a stroll in a park to fume out.

                         

                        Vlad

                        < signature link removed by moderator, as per the OTN FAQ >

                         

                        P.S. You're a brave one, using OSB 12 before it is 12.3 or so!

                        • 9. Re: Internal Server Error
                          User10124166-Oracle

                          Can you send (attach) your sbconfig file for the services?

                          • 10. Re: Internal Server Error
                            Mark Reichman

                            If sbconfig means export the service bus project to a jar file then I'm not sure I want to do that.  WSDLs and passwords are within and I would rather not broadcast that to the world.

                            • 11. Re: Internal Server Error
                              User10124166-Oracle

                              1. Is it possible to create simple services without u/p and share the sbconfig?

                              2. Did you try dumping $input in both the cases as suggested by Vlad?

                              3. Any information you can gather from the server log, which can help us to debug further?

                               

                              Thanks,

                              Sandeep

                              • 12. Re: Re: Internal Server Error
                                Mark Reichman

                                I put $input in a log action as the very first thing in the request side of the pipeline.  I used the following three expressions and got nothing back in the log.  All I got was the element <Payload/>.  What am I missing?

                                 

                                $input

                                 

                                 

                                <Payload>

                                {

                                fn-bea:serialize($input)

                                }

                                </Payload>

                                 

                                 

                                <Payload>

                                {

                                $input

                                }

                                </Payload>

                                • 13. Re: Re: Internal Server Error
                                  User10084077-Oracle

                                  What logging level did you give in the action? You may have started your domain server with Error/Warning level but your action may have Info or other lower logging levels. You can try giving Error level for the same.

                                  • 14. Re: Internal Server Error
                                    Mark Reichman

                                    It is set correctly to "error".  I am getting <payload/> element in the log just nothing in $input variable. 

                                    1 2 Previous Next