Topic
  • 10 replies
  • Latest Post - ‏2012-05-18T19:18:20Z by RyanG
RyanG
RyanG
13 Posts

Pinned topic Call 4.5.0 CEWS using WCF?

‏2012-05-01T16:03:02Z |
We have a small app written in .NET 3.5 which calls FileNet CEWS using WCF. We have three FileNet environments: dev, test and prod. Our dev environment has been patched from 4.5.0 to 4.5.1, test and prod are stuck at 4.5.0 and won't be patched to 4.5.1, due to a pending (within a year hopefully) 5.x upgrade. Everything works beautifully in dev, not so well in test or prod. We are getting a 404 when trying to connect to test and prod, even though the wsdl and endpoints exist and can be called from test applications.

Will we have to replace WCF with WSE3.0, or is there a way to call CEWS on 4.5.0 using WCF?

I'm a Java guy tasked with assisting on a .NET interface, so please pardon any blatant ignorance.

Thank you for your time,

Ryan Goodpasture
Updated on 2012-05-18T19:18:20Z at 2012-05-18T19:18:20Z by RyanG
  • drdamour
    drdamour
    40 Posts

    Re: Call 4.5.0 CEWS using WCF?

    ‏2012-05-01T16:52:45Z  
    yeah, you're missing a bit of info to give you a perfect answer.

    What binding are you using? 4.5.x has DIME (deprecated through), MTOM, and SOAP? The WSE toolkit really came into vogue because of it's MTOM support which WCF wasn't a big fan of back in earlier VS 2005 days (you know, cause WCF didn't yet exist :) ). There should be no problem with consuming the SOAP binding, consuming the MTOM with WCF is a bit trickier depending on your version of WCF.

    The version of .NET you are targeting (and even what VS version you're using) has a very small chance of causing your errors.

    The FileNet.API assembly in 4.5 is built on top of WSE. in 5.x it can use either WSE or WCF (and prefers WSE), you may want to switch to just using this instead of generating your own custom proxy classes. It has some drawbacks though because it uses thread static members to store credentials (vs instance members in the .net generated proxies) which in 99 of a 100 use cases won't matter, but it could in yours.

    So my conclusion is that you shouldn't need to change, but you might want to.

    I'd hazard a guess that you have either a configuration problem on your client or some stability issue on your server.

    You should fire up fiddler (http://fiddlertool.com) and see what the requests are that are 404'ing in your application.


    I am Just a new Boy,
    A Stranger in this Town,
    Where are All the Good Times,
    Who's Gonna Show this Stranger Around?

    Check out our Agile ACM Catalogue: Widgets, APIs, & Components for Building Solutions
  • SystemAdmin
    SystemAdmin
    693 Posts

    Re: Call 4.5.0 CEWS using WCF?

    ‏2012-05-01T17:55:58Z  
    As usual, drdamour, gives good information here.

    Offhand, I don't think the 404 would be coming from the P8 side (it doesn't care much where the requests come from, though clients certainly have their quirks). There's a good chance your problem is something pretty basic. One quick thing to check ... since you are using WCF, I assume you are using HTTPS. Have you checked that the test and prod servers are listening on the TLS/SSL port number (and that there's not some firewall causing mischief)?
  • RyanG
    RyanG
    13 Posts

    Re: Call 4.5.0 CEWS using WCF?

    ‏2012-05-10T17:28:03Z  
    Thank you for your speedy reply and sorry for the late response, been out of the office.

    We are using FileNet.Api.dll. Doesn't matter if we build using WSE or WCF, which version of the DLL we use, we get the same error.

    Attached are two fiddler sessions, one from dev (CE v4.5.1) which succeeds, and one from test (CE v4.5.0), which fails.

    Here's the dev request:
    
    POST https:
    //devserver:9443/wsi/FNCEWS40MTOM HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.3615) VsDebuggerCausalityData: uIDPow9JTOtIOVlDigSZKBpqIXwBAAAA9j21Rpxli02h0atKAuxIruIyuvEdRWhLolgXadJURUcACQAA Host: devserver:9443 Content-Type: multipart/related; type=
    "application/xop+xml"; boundary=--MIMEBoundary634722367926096355; start=
    "<0.634722367926096355@example.org>"; start-info=
    "application/soap+xml; charset=utf-8" Content-Length: 1504     ----MIMEBoundary634722367926096355 content-id: <0.634722367926096355@example.org> content-type: application/xop+xml; charset=utf-8; type=
    "application/soap+xml; charset=utf-8" content-transfer-encoding: binary   <soap:Envelope xmlns:xop=
    "http://www.w3.org/2004/08/xop/include" xmlns:soap=
    "http://www.w3.org/2003/05/soap-envelope" xmlns:xsi=
    "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd=
    "http://www.w3.org/2001/XMLSchema" xmlns:wsse=
    "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><soap:Header><ApiContext version=
    "451" build=
    "-vdap451.006.004" type=
    ".Net" threadId=
    "6" xmlns=
    "http://www.filenet.com/ns/fnce/2006/11/ws/schema" /><Localization xmlns=
    "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><Locale>en-US</Locale><Timezone>-07:00</Timezone></Localization><wsse:Security env:mustUnderstand=
    "true" xmlns:env=
    "http://www.w3.org/2003/05/soap-envelope"><wsse:UsernameToken><wsse:Username>dev_user</wsse:Username><wsse:Password Type=
    "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">dev_password</wsse:Password></wsse:UsernameToken></wsse:Security></soap:Header><soap:Body><GetObjectsRequest xmlns=
    "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><ObjectRequest id=
    "1"><SourceSpecification classId=
    "Domain" /><PropertyFilter><IncludeProperties maxRecursion=
    "0">Id</IncludeProperties></PropertyFilter></ObjectRequest></GetObjectsRequest></soap:Body></soap:Envelope> ----MIMEBoundary634722367926096355--   HTTP/1.1 200 OK SOAPAction: 
    "" User-Agent: IBM FileNet P8 CE Java API (4.5.1.6 / dap451.006.004) Content-Type: multipart/related; boundary=A-B--MIME-BOUNDARY--7eff92c6233d158a-137377437b1--Y-Z; type=
    "application/xop+xml"; start-info=
    "application/soap+xml"; start=
    "<v0+7eff92c6233d158a-137377437b1@mtom.p8ce.filenet.com>" Content-Language: en-US Date: Thu, 10 May 2012 15:53:12 GMT Server: WebSphere Application Server/6.1 Content-Length: 1412   --A-B--MIME-BOUNDARY--7eff92c6233d158a-137377437b1--Y-Z Content-Transfer-Encoding: binary Content-Type: application/xop+xml; type=
    "application/soap+xml"; charset=UTF-8 Content-ID: <v0+7eff92c6233d158a-137377437b1@mtom.p8ce.filenet.com>   <?xml version=
    "1.0" encoding=
    "UTF-8"?><e:Envelope xmlns:d=
    "http://www.w3.org/2001/XMLSchema" xmlns:i=
    "http://www.w3.org/2001/XMLSchema-instance" xmlns:fn35d=
    "http://www.filenet.com/ns/fnce/2005/02/ws/DIME/schema" xmlns:fn35=
    "http://www.filenet.com/ns/fnce/2005/02/ws/schema" xmlns:fn40d=
    "http://www.filenet.com/ns/fnce/2006/11/ws/DIME/schema" xmlns:fn40m=
    "http://www.filenet.com/ns/fnce/2006/11/ws/MTOM/schema" xmlns:fn40=
    "http://www.filenet.com/ns/fnce/2006/11/ws/schema" xmlns:dime=
    "http://schemas.xmlsoap.org/ws/2002/04/reference/" xmlns:xop=
    "http://www.w3.org/2004/08/xop/include" xmlns:e=
    "http://www.w3.org/2003/05/soap-envelope"><e:Body><GetObjectsResponse xmlns=
    "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><ObjectResponse id=
    "1" i:type=
    "fn40:SingleObjectResponse"><Object i:type=
    "fn40:ObjectValue" classId=
    "Domain" objectId=
    "{3E039B70-7BE6-47B4-AD93-33F47D70591E}" updateSequenceNumber=
    "8" accessAllowed=
    "1"><Property i:type=
    "fn40:SingletonId" propertyId=
    "Id"><Value>
    {3E039B70-7BE6-47B4-AD93-33F47D70591E
    }</Value></Property></Object></ObjectResponse></GetObjectsResponse></e:Body></e:Envelope> --A-B--MIME-BOUNDARY--7eff92c6233d158a-137377437b1--Y-Z--
    


    And the test session:

    
    POST https:
    //testserver:9443/wsi/FNCEWS40MTOM HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.3615) VsDebuggerCausalityData: uIDPow5JTOtIOVlDigSZKBpqIXwBAAAAjJD0D36bS0mU+HmkHDPvFwyNNEKUpj5Bn6+QKPbzwMoACQAA Host: testserver:9443 Content-Type: multipart/related; type=
    "application/xop+xml"; boundary=--MIMEBoundary634722356507013691; start=
    "<0.634722356507013691@example.org>"; start-info=
    "application/soap+xml; charset=utf-8" Content-Length: 1413 Connection: Keep-Alive     ----MIMEBoundary634722356507013691 content-id: <0.634722356507013691@example.org> content-type: application/xop+xml; charset=utf-8; type=
    "application/soap+xml; charset=utf-8" content-transfer-encoding: binary   <soap:Envelope xmlns:xop=
    "http://www.w3.org/2004/08/xop/include" xmlns:soap=
    "http://www.w3.org/2003/05/soap-envelope" xmlns:xsi=
    "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd=
    "http://www.w3.org/2001/XMLSchema" xmlns:wsse=
    "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><soap:Header><ApiContext version=
    "451" build=
    "-vdap451.006.004" type=
    ".Net" threadId=
    "6" xmlns=
    "http://www.filenet.com/ns/fnce/2006/11/ws/schema" /><Localization xmlns=
    "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><Locale>en-US</Locale><Timezone>-07:00</Timezone></Localization><wsse:Security env:mustUnderstand=
    "true" xmlns:env=
    "http://www.w3.org/2003/05/soap-envelope"><wsse:UsernameToken><wsse:Username>test_user</wsse:Username><wsse:Password Type=
    "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">test_pwd</wsse:Password></wsse:UsernameToken></wsse:Security></soap:Header><soap:Body><GetObjectsRequest xmlns=
    "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><ObjectRequest id=
    "1"><SourceSpecification classId=
    "Domain" /></ObjectRequest></GetObjectsRequest></soap:Body></soap:Envelope> ----MIMEBoundary634722356507013691--   HTTP/1.1 404 Not Found Server: Systinet Server 
    
    for Java/6.5.4 (Java/1.5.0; Windows Server 2003/5.2 build 3790 Service Pack 2; build SSJ-6.5.4-20060829-1824) Content-Language: en-US Connection: Close Date: Thu, 10 May 2012 15:34:10 GMT Content-Length: 0
    


    If we navigate to https://testserver:9443/wsi/FNCEWS40MTOM, we get the wsdl. I can't fathom why it's returning a 404.

    Thanks again.
  • RyanG
    RyanG
    13 Posts

    Re: Call 4.5.0 CEWS using WCF?

    ‏2012-05-10T17:45:27Z  
    • RyanG
    • ‏2012-05-10T17:28:03Z
    Thank you for your speedy reply and sorry for the late response, been out of the office.

    We are using FileNet.Api.dll. Doesn't matter if we build using WSE or WCF, which version of the DLL we use, we get the same error.

    Attached are two fiddler sessions, one from dev (CE v4.5.1) which succeeds, and one from test (CE v4.5.0), which fails.

    Here's the dev request:
    <pre class="jive-pre"> POST https: //devserver:9443/wsi/FNCEWS40MTOM HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.3615) VsDebuggerCausalityData: uIDPow9JTOtIOVlDigSZKBpqIXwBAAAA9j21Rpxli02h0atKAuxIruIyuvEdRWhLolgXadJURUcACQAA Host: devserver:9443 Content-Type: multipart/related; type= "application/xop+xml"; boundary=--MIMEBoundary634722367926096355; start= "<0.634722367926096355@example.org>"; start-info= "application/soap+xml; charset=utf-8" Content-Length: 1504 ----MIMEBoundary634722367926096355 content-id: <0.634722367926096355@example.org> content-type: application/xop+xml; charset=utf-8; type= "application/soap+xml; charset=utf-8" content-transfer-encoding: binary <soap:Envelope xmlns:xop= "http://www.w3.org/2004/08/xop/include" xmlns:soap= "http://www.w3.org/2003/05/soap-envelope" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd= "http://www.w3.org/2001/XMLSchema" xmlns:wsse= "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><soap:Header><ApiContext version= "451" build= "-vdap451.006.004" type= ".Net" threadId= "6" xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema" /><Localization xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><Locale>en-US</Locale><Timezone>-07:00</Timezone></Localization><wsse:Security env:mustUnderstand= "true" xmlns:env= "http://www.w3.org/2003/05/soap-envelope"><wsse:UsernameToken><wsse:Username>dev_user</wsse:Username><wsse:Password Type= "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">dev_password</wsse:Password></wsse:UsernameToken></wsse:Security></soap:Header><soap:Body><GetObjectsRequest xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><ObjectRequest id= "1"><SourceSpecification classId= "Domain" /><PropertyFilter><IncludeProperties maxRecursion= "0">Id</IncludeProperties></PropertyFilter></ObjectRequest></GetObjectsRequest></soap:Body></soap:Envelope> ----MIMEBoundary634722367926096355-- HTTP/1.1 200 OK SOAPAction: "" User-Agent: IBM FileNet P8 CE Java API (4.5.1.6 / dap451.006.004) Content-Type: multipart/related; boundary=A-B--MIME-BOUNDARY--7eff92c6233d158a-137377437b1--Y-Z; type= "application/xop+xml"; start-info= "application/soap+xml"; start= "<v0+7eff92c6233d158a-137377437b1@mtom.p8ce.filenet.com>" Content-Language: en-US Date: Thu, 10 May 2012 15:53:12 GMT Server: WebSphere Application Server/6.1 Content-Length: 1412 --A-B--MIME-BOUNDARY--7eff92c6233d158a-137377437b1--Y-Z Content-Transfer-Encoding: binary Content-Type: application/xop+xml; type= "application/soap+xml"; charset=UTF-8 Content-ID: <v0+7eff92c6233d158a-137377437b1@mtom.p8ce.filenet.com> <?xml version= "1.0" encoding= "UTF-8"?><e:Envelope xmlns:d= "http://www.w3.org/2001/XMLSchema" xmlns:i= "http://www.w3.org/2001/XMLSchema-instance" xmlns:fn35d= "http://www.filenet.com/ns/fnce/2005/02/ws/DIME/schema" xmlns:fn35= "http://www.filenet.com/ns/fnce/2005/02/ws/schema" xmlns:fn40d= "http://www.filenet.com/ns/fnce/2006/11/ws/DIME/schema" xmlns:fn40m= "http://www.filenet.com/ns/fnce/2006/11/ws/MTOM/schema" xmlns:fn40= "http://www.filenet.com/ns/fnce/2006/11/ws/schema" xmlns:dime= "http://schemas.xmlsoap.org/ws/2002/04/reference/" xmlns:xop= "http://www.w3.org/2004/08/xop/include" xmlns:e= "http://www.w3.org/2003/05/soap-envelope"><e:Body><GetObjectsResponse xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><ObjectResponse id= "1" i:type= "fn40:SingleObjectResponse"><Object i:type= "fn40:ObjectValue" classId= "Domain" objectId= "{3E039B70-7BE6-47B4-AD93-33F47D70591E}" updateSequenceNumber= "8" accessAllowed= "1"><Property i:type= "fn40:SingletonId" propertyId= "Id"><Value> {3E039B70-7BE6-47B4-AD93-33F47D70591E }</Value></Property></Object></ObjectResponse></GetObjectsResponse></e:Body></e:Envelope> --A-B--MIME-BOUNDARY--7eff92c6233d158a-137377437b1--Y-Z-- </pre>

    And the test session:

    <pre class="jive-pre"> POST https: //testserver:9443/wsi/FNCEWS40MTOM HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.3615) VsDebuggerCausalityData: uIDPow5JTOtIOVlDigSZKBpqIXwBAAAAjJD0D36bS0mU+HmkHDPvFwyNNEKUpj5Bn6+QKPbzwMoACQAA Host: testserver:9443 Content-Type: multipart/related; type= "application/xop+xml"; boundary=--MIMEBoundary634722356507013691; start= "<0.634722356507013691@example.org>"; start-info= "application/soap+xml; charset=utf-8" Content-Length: 1413 Connection: Keep-Alive ----MIMEBoundary634722356507013691 content-id: <0.634722356507013691@example.org> content-type: application/xop+xml; charset=utf-8; type= "application/soap+xml; charset=utf-8" content-transfer-encoding: binary <soap:Envelope xmlns:xop= "http://www.w3.org/2004/08/xop/include" xmlns:soap= "http://www.w3.org/2003/05/soap-envelope" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd= "http://www.w3.org/2001/XMLSchema" xmlns:wsse= "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><soap:Header><ApiContext version= "451" build= "-vdap451.006.004" type= ".Net" threadId= "6" xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema" /><Localization xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><Locale>en-US</Locale><Timezone>-07:00</Timezone></Localization><wsse:Security env:mustUnderstand= "true" xmlns:env= "http://www.w3.org/2003/05/soap-envelope"><wsse:UsernameToken><wsse:Username>test_user</wsse:Username><wsse:Password Type= "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">test_pwd</wsse:Password></wsse:UsernameToken></wsse:Security></soap:Header><soap:Body><GetObjectsRequest xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><ObjectRequest id= "1"><SourceSpecification classId= "Domain" /></ObjectRequest></GetObjectsRequest></soap:Body></soap:Envelope> ----MIMEBoundary634722356507013691-- HTTP/1.1 404 Not Found Server: Systinet Server for Java/6.5.4 (Java/1.5.0; Windows Server 2003/5.2 build 3790 Service Pack 2; build SSJ-6.5.4-20060829-1824) Content-Language: en-US Connection: Close Date: Thu, 10 May 2012 15:34:10 GMT Content-Length: 0 </pre>

    If we navigate to https://testserver:9443/wsi/FNCEWS40MTOM, we get the wsdl. I can't fathom why it's returning a 404.

    Thanks again.
    Could it be the PropertyFilter tag that is included in the dev request but not the test request?

    The .NET code is identical, only the server address is different.

    Why would the FileNet.Api assembly add that tag to the dev request, but not to test?
  • RyanG
    RyanG
    13 Posts

    Re: Call 4.5.0 CEWS using WCF?

    ‏2012-05-10T17:45:29Z  
    • RyanG
    • ‏2012-05-10T17:28:03Z
    Thank you for your speedy reply and sorry for the late response, been out of the office.

    We are using FileNet.Api.dll. Doesn't matter if we build using WSE or WCF, which version of the DLL we use, we get the same error.

    Attached are two fiddler sessions, one from dev (CE v4.5.1) which succeeds, and one from test (CE v4.5.0), which fails.

    Here's the dev request:
    <pre class="jive-pre"> POST https: //devserver:9443/wsi/FNCEWS40MTOM HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.3615) VsDebuggerCausalityData: uIDPow9JTOtIOVlDigSZKBpqIXwBAAAA9j21Rpxli02h0atKAuxIruIyuvEdRWhLolgXadJURUcACQAA Host: devserver:9443 Content-Type: multipart/related; type= "application/xop+xml"; boundary=--MIMEBoundary634722367926096355; start= "<0.634722367926096355@example.org>"; start-info= "application/soap+xml; charset=utf-8" Content-Length: 1504 ----MIMEBoundary634722367926096355 content-id: <0.634722367926096355@example.org> content-type: application/xop+xml; charset=utf-8; type= "application/soap+xml; charset=utf-8" content-transfer-encoding: binary <soap:Envelope xmlns:xop= "http://www.w3.org/2004/08/xop/include" xmlns:soap= "http://www.w3.org/2003/05/soap-envelope" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd= "http://www.w3.org/2001/XMLSchema" xmlns:wsse= "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><soap:Header><ApiContext version= "451" build= "-vdap451.006.004" type= ".Net" threadId= "6" xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema" /><Localization xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><Locale>en-US</Locale><Timezone>-07:00</Timezone></Localization><wsse:Security env:mustUnderstand= "true" xmlns:env= "http://www.w3.org/2003/05/soap-envelope"><wsse:UsernameToken><wsse:Username>dev_user</wsse:Username><wsse:Password Type= "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">dev_password</wsse:Password></wsse:UsernameToken></wsse:Security></soap:Header><soap:Body><GetObjectsRequest xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><ObjectRequest id= "1"><SourceSpecification classId= "Domain" /><PropertyFilter><IncludeProperties maxRecursion= "0">Id</IncludeProperties></PropertyFilter></ObjectRequest></GetObjectsRequest></soap:Body></soap:Envelope> ----MIMEBoundary634722367926096355-- HTTP/1.1 200 OK SOAPAction: "" User-Agent: IBM FileNet P8 CE Java API (4.5.1.6 / dap451.006.004) Content-Type: multipart/related; boundary=A-B--MIME-BOUNDARY--7eff92c6233d158a-137377437b1--Y-Z; type= "application/xop+xml"; start-info= "application/soap+xml"; start= "<v0+7eff92c6233d158a-137377437b1@mtom.p8ce.filenet.com>" Content-Language: en-US Date: Thu, 10 May 2012 15:53:12 GMT Server: WebSphere Application Server/6.1 Content-Length: 1412 --A-B--MIME-BOUNDARY--7eff92c6233d158a-137377437b1--Y-Z Content-Transfer-Encoding: binary Content-Type: application/xop+xml; type= "application/soap+xml"; charset=UTF-8 Content-ID: <v0+7eff92c6233d158a-137377437b1@mtom.p8ce.filenet.com> <?xml version= "1.0" encoding= "UTF-8"?><e:Envelope xmlns:d= "http://www.w3.org/2001/XMLSchema" xmlns:i= "http://www.w3.org/2001/XMLSchema-instance" xmlns:fn35d= "http://www.filenet.com/ns/fnce/2005/02/ws/DIME/schema" xmlns:fn35= "http://www.filenet.com/ns/fnce/2005/02/ws/schema" xmlns:fn40d= "http://www.filenet.com/ns/fnce/2006/11/ws/DIME/schema" xmlns:fn40m= "http://www.filenet.com/ns/fnce/2006/11/ws/MTOM/schema" xmlns:fn40= "http://www.filenet.com/ns/fnce/2006/11/ws/schema" xmlns:dime= "http://schemas.xmlsoap.org/ws/2002/04/reference/" xmlns:xop= "http://www.w3.org/2004/08/xop/include" xmlns:e= "http://www.w3.org/2003/05/soap-envelope"><e:Body><GetObjectsResponse xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><ObjectResponse id= "1" i:type= "fn40:SingleObjectResponse"><Object i:type= "fn40:ObjectValue" classId= "Domain" objectId= "{3E039B70-7BE6-47B4-AD93-33F47D70591E}" updateSequenceNumber= "8" accessAllowed= "1"><Property i:type= "fn40:SingletonId" propertyId= "Id"><Value> {3E039B70-7BE6-47B4-AD93-33F47D70591E }</Value></Property></Object></ObjectResponse></GetObjectsResponse></e:Body></e:Envelope> --A-B--MIME-BOUNDARY--7eff92c6233d158a-137377437b1--Y-Z-- </pre>

    And the test session:

    <pre class="jive-pre"> POST https: //testserver:9443/wsi/FNCEWS40MTOM HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.3615) VsDebuggerCausalityData: uIDPow5JTOtIOVlDigSZKBpqIXwBAAAAjJD0D36bS0mU+HmkHDPvFwyNNEKUpj5Bn6+QKPbzwMoACQAA Host: testserver:9443 Content-Type: multipart/related; type= "application/xop+xml"; boundary=--MIMEBoundary634722356507013691; start= "<0.634722356507013691@example.org>"; start-info= "application/soap+xml; charset=utf-8" Content-Length: 1413 Connection: Keep-Alive ----MIMEBoundary634722356507013691 content-id: <0.634722356507013691@example.org> content-type: application/xop+xml; charset=utf-8; type= "application/soap+xml; charset=utf-8" content-transfer-encoding: binary <soap:Envelope xmlns:xop= "http://www.w3.org/2004/08/xop/include" xmlns:soap= "http://www.w3.org/2003/05/soap-envelope" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd= "http://www.w3.org/2001/XMLSchema" xmlns:wsse= "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><soap:Header><ApiContext version= "451" build= "-vdap451.006.004" type= ".Net" threadId= "6" xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema" /><Localization xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><Locale>en-US</Locale><Timezone>-07:00</Timezone></Localization><wsse:Security env:mustUnderstand= "true" xmlns:env= "http://www.w3.org/2003/05/soap-envelope"><wsse:UsernameToken><wsse:Username>test_user</wsse:Username><wsse:Password Type= "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">test_pwd</wsse:Password></wsse:UsernameToken></wsse:Security></soap:Header><soap:Body><GetObjectsRequest xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><ObjectRequest id= "1"><SourceSpecification classId= "Domain" /></ObjectRequest></GetObjectsRequest></soap:Body></soap:Envelope> ----MIMEBoundary634722356507013691-- HTTP/1.1 404 Not Found Server: Systinet Server for Java/6.5.4 (Java/1.5.0; Windows Server 2003/5.2 build 3790 Service Pack 2; build SSJ-6.5.4-20060829-1824) Content-Language: en-US Connection: Close Date: Thu, 10 May 2012 15:34:10 GMT Content-Length: 0 </pre>

    If we navigate to https://testserver:9443/wsi/FNCEWS40MTOM, we get the wsdl. I can't fathom why it's returning a 404.

    Thanks again.
    Could it be the PropertyFilter tag that is included in the dev request but not the test request?

    The .NET code is identical, only the server address is different.

    Why would the FileNet.Api assembly add that tag to the dev request, but not to test?
  • drdamour
    drdamour
    40 Posts

    Re: Call 4.5.0 CEWS using WCF?

    ‏2012-05-11T19:28:40Z  
    • RyanG
    • ‏2012-05-10T17:28:03Z
    Thank you for your speedy reply and sorry for the late response, been out of the office.

    We are using FileNet.Api.dll. Doesn't matter if we build using WSE or WCF, which version of the DLL we use, we get the same error.

    Attached are two fiddler sessions, one from dev (CE v4.5.1) which succeeds, and one from test (CE v4.5.0), which fails.

    Here's the dev request:
    <pre class="jive-pre"> POST https: //devserver:9443/wsi/FNCEWS40MTOM HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.3615) VsDebuggerCausalityData: uIDPow9JTOtIOVlDigSZKBpqIXwBAAAA9j21Rpxli02h0atKAuxIruIyuvEdRWhLolgXadJURUcACQAA Host: devserver:9443 Content-Type: multipart/related; type= "application/xop+xml"; boundary=--MIMEBoundary634722367926096355; start= "<0.634722367926096355@example.org>"; start-info= "application/soap+xml; charset=utf-8" Content-Length: 1504 ----MIMEBoundary634722367926096355 content-id: <0.634722367926096355@example.org> content-type: application/xop+xml; charset=utf-8; type= "application/soap+xml; charset=utf-8" content-transfer-encoding: binary <soap:Envelope xmlns:xop= "http://www.w3.org/2004/08/xop/include" xmlns:soap= "http://www.w3.org/2003/05/soap-envelope" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd= "http://www.w3.org/2001/XMLSchema" xmlns:wsse= "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><soap:Header><ApiContext version= "451" build= "-vdap451.006.004" type= ".Net" threadId= "6" xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema" /><Localization xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><Locale>en-US</Locale><Timezone>-07:00</Timezone></Localization><wsse:Security env:mustUnderstand= "true" xmlns:env= "http://www.w3.org/2003/05/soap-envelope"><wsse:UsernameToken><wsse:Username>dev_user</wsse:Username><wsse:Password Type= "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">dev_password</wsse:Password></wsse:UsernameToken></wsse:Security></soap:Header><soap:Body><GetObjectsRequest xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><ObjectRequest id= "1"><SourceSpecification classId= "Domain" /><PropertyFilter><IncludeProperties maxRecursion= "0">Id</IncludeProperties></PropertyFilter></ObjectRequest></GetObjectsRequest></soap:Body></soap:Envelope> ----MIMEBoundary634722367926096355-- HTTP/1.1 200 OK SOAPAction: "" User-Agent: IBM FileNet P8 CE Java API (4.5.1.6 / dap451.006.004) Content-Type: multipart/related; boundary=A-B--MIME-BOUNDARY--7eff92c6233d158a-137377437b1--Y-Z; type= "application/xop+xml"; start-info= "application/soap+xml"; start= "<v0+7eff92c6233d158a-137377437b1@mtom.p8ce.filenet.com>" Content-Language: en-US Date: Thu, 10 May 2012 15:53:12 GMT Server: WebSphere Application Server/6.1 Content-Length: 1412 --A-B--MIME-BOUNDARY--7eff92c6233d158a-137377437b1--Y-Z Content-Transfer-Encoding: binary Content-Type: application/xop+xml; type= "application/soap+xml"; charset=UTF-8 Content-ID: <v0+7eff92c6233d158a-137377437b1@mtom.p8ce.filenet.com> <?xml version= "1.0" encoding= "UTF-8"?><e:Envelope xmlns:d= "http://www.w3.org/2001/XMLSchema" xmlns:i= "http://www.w3.org/2001/XMLSchema-instance" xmlns:fn35d= "http://www.filenet.com/ns/fnce/2005/02/ws/DIME/schema" xmlns:fn35= "http://www.filenet.com/ns/fnce/2005/02/ws/schema" xmlns:fn40d= "http://www.filenet.com/ns/fnce/2006/11/ws/DIME/schema" xmlns:fn40m= "http://www.filenet.com/ns/fnce/2006/11/ws/MTOM/schema" xmlns:fn40= "http://www.filenet.com/ns/fnce/2006/11/ws/schema" xmlns:dime= "http://schemas.xmlsoap.org/ws/2002/04/reference/" xmlns:xop= "http://www.w3.org/2004/08/xop/include" xmlns:e= "http://www.w3.org/2003/05/soap-envelope"><e:Body><GetObjectsResponse xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><ObjectResponse id= "1" i:type= "fn40:SingleObjectResponse"><Object i:type= "fn40:ObjectValue" classId= "Domain" objectId= "{3E039B70-7BE6-47B4-AD93-33F47D70591E}" updateSequenceNumber= "8" accessAllowed= "1"><Property i:type= "fn40:SingletonId" propertyId= "Id"><Value> {3E039B70-7BE6-47B4-AD93-33F47D70591E }</Value></Property></Object></ObjectResponse></GetObjectsResponse></e:Body></e:Envelope> --A-B--MIME-BOUNDARY--7eff92c6233d158a-137377437b1--Y-Z-- </pre>

    And the test session:

    <pre class="jive-pre"> POST https: //testserver:9443/wsi/FNCEWS40MTOM HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.3615) VsDebuggerCausalityData: uIDPow5JTOtIOVlDigSZKBpqIXwBAAAAjJD0D36bS0mU+HmkHDPvFwyNNEKUpj5Bn6+QKPbzwMoACQAA Host: testserver:9443 Content-Type: multipart/related; type= "application/xop+xml"; boundary=--MIMEBoundary634722356507013691; start= "<0.634722356507013691@example.org>"; start-info= "application/soap+xml; charset=utf-8" Content-Length: 1413 Connection: Keep-Alive ----MIMEBoundary634722356507013691 content-id: <0.634722356507013691@example.org> content-type: application/xop+xml; charset=utf-8; type= "application/soap+xml; charset=utf-8" content-transfer-encoding: binary <soap:Envelope xmlns:xop= "http://www.w3.org/2004/08/xop/include" xmlns:soap= "http://www.w3.org/2003/05/soap-envelope" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd= "http://www.w3.org/2001/XMLSchema" xmlns:wsse= "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><soap:Header><ApiContext version= "451" build= "-vdap451.006.004" type= ".Net" threadId= "6" xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema" /><Localization xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><Locale>en-US</Locale><Timezone>-07:00</Timezone></Localization><wsse:Security env:mustUnderstand= "true" xmlns:env= "http://www.w3.org/2003/05/soap-envelope"><wsse:UsernameToken><wsse:Username>test_user</wsse:Username><wsse:Password Type= "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">test_pwd</wsse:Password></wsse:UsernameToken></wsse:Security></soap:Header><soap:Body><GetObjectsRequest xmlns= "http://www.filenet.com/ns/fnce/2006/11/ws/schema"><ObjectRequest id= "1"><SourceSpecification classId= "Domain" /></ObjectRequest></GetObjectsRequest></soap:Body></soap:Envelope> ----MIMEBoundary634722356507013691-- HTTP/1.1 404 Not Found Server: Systinet Server for Java/6.5.4 (Java/1.5.0; Windows Server 2003/5.2 build 3790 Service Pack 2; build SSJ-6.5.4-20060829-1824) Content-Language: en-US Connection: Close Date: Thu, 10 May 2012 15:34:10 GMT Content-Length: 0 </pre>

    If we navigate to https://testserver:9443/wsi/FNCEWS40MTOM, we get the wsdl. I can't fathom why it's returning a 404.

    Thanks again.
    AFAIK you can't use wcf with 4.5.0, and i don't think you can even use it with 4.5.1 (but doing a quick search i might be wrong about that, they announced WCF support with 5.0)
    I would suspect it's important to use the correct FileNet.API assembly for each environment, both your captures show using 451, but i understand you're saying it doesn't seem to matter. Still i'd like to see the request from the corerect FileNet.API version for the 4.5.0 environment. You can save all fiddler sessions as a SAZ archive and open them later.

    i'm sorry to say that i don't have a functioning 4.5.0 system to test against, so i can't help too much. have you tried to look at the Systinet logs?

    Have you tried using the SOAP endpoint (just to eliminate MTOM from the equation)?

    you can use fiddler's request composer (just drag the session over to the composer tab) to modify the post body and verify your posture that the property filters are causing the issue (but i doubt it).

    I'd definitely suggest opening a PMR regarding this issue at this point.


    I am Just a new Boy,
    A Stranger in this Town,
    Where are All the Good Times,
    Who's Gonna Show this Stranger Around?
    Check out our Agile ACM Catalogue: Widgets, APIs, & Components for Building Solutions
  • SystemAdmin
    SystemAdmin
    693 Posts

    Re: Call 4.5.0 CEWS using WCF?

    ‏2012-05-13T00:16:43Z  
    • drdamour
    • ‏2012-05-11T19:28:40Z
    AFAIK you can't use wcf with 4.5.0, and i don't think you can even use it with 4.5.1 (but doing a quick search i might be wrong about that, they announced WCF support with 5.0)
    I would suspect it's important to use the correct FileNet.API assembly for each environment, both your captures show using 451, but i understand you're saying it doesn't seem to matter. Still i'd like to see the request from the corerect FileNet.API version for the 4.5.0 environment. You can save all fiddler sessions as a SAZ archive and open them later.

    i'm sorry to say that i don't have a functioning 4.5.0 system to test against, so i can't help too much. have you tried to look at the Systinet logs?

    Have you tried using the SOAP endpoint (just to eliminate MTOM from the equation)?

    you can use fiddler's request composer (just drag the session over to the composer tab) to modify the post body and verify your posture that the property filters are causing the issue (but i doubt it).

    I'd definitely suggest opening a PMR regarding this issue at this point.


    I am Just a new Boy,
    A Stranger in this Town,
    Where are All the Good Times,
    Who's Gonna Show this Stranger Around?
    Check out our Agile ACM Catalogue: Widgets, APIs, & Components for Building Solutions
    Most of the problems related to this are of the sort where it just blows up and you get no actual RPC. The fact that you are getting a server hit at all is actually kind of encouraging. You didn't say explicitly (or I missed it), but I assume you are not having any trouble communicating via FEM with the test server.

    As you probably know (you can see it in the HTTP response headers), before CE 4.5.1 FileNet used 3rd party software from Systinet for the CEWS stack. With CE 4.5.1, the Systinet components were completely replaced. Back in those days, I used to know a tiny bit about Systinet, but even that has faded for me personally. (Also, when Systinet was an independent company, it was easy to search their support site. They have since been acquired and links to systinet.com are now dead.)

    I don't have any new suggestions for you. However, assuming your application doesn't need much environmental stuff, you could try it with WSE on some spare client machine (maybe even someone's desktop) and see what happens.

    BTW, support for WCF was introduced in the CE .NET API in CE 4.5.1 fixpack 2.
  • RyanG
    RyanG
    13 Posts

    Re: Call 4.5.0 CEWS using WCF?

    ‏2012-05-17T17:46:48Z  
    Thanks again, guys for your time and your thoughtful replies.

    I pulled out WCF, rebuilt with WSE, same problem.

    Using fiddler, I captured a successful FEM connection request to the test environment. I then ran a text compare against our failed requests. Lo and behold, there was a one character difference!

    In 4.5.0 (test and prod), the URI requires a slash at the end.

    https://testsever:9443/wsi/FNCEWS40MTOM/ - succeeds

    https://testsever:9443/wsi/FNCEWS40MTOM - fails

    In 4.5.1 (dev), no slash is required

    https://devserver:9443/wsi/FNCEWS40MTOM - succeeds

    How’s that for silly?

    Now to see if it all works with WCF.

    Thanks again.
  • SystemAdmin
    SystemAdmin
    693 Posts

    Re: Call 4.5.0 CEWS using WCF?

    ‏2012-05-18T18:57:57Z  
    • RyanG
    • ‏2012-05-17T17:46:48Z
    Thanks again, guys for your time and your thoughtful replies.

    I pulled out WCF, rebuilt with WSE, same problem.

    Using fiddler, I captured a successful FEM connection request to the test environment. I then ran a text compare against our failed requests. Lo and behold, there was a one character difference!

    In 4.5.0 (test and prod), the URI requires a slash at the end.

    https://testsever:9443/wsi/FNCEWS40MTOM/ - succeeds

    https://testsever:9443/wsi/FNCEWS40MTOM - fails

    In 4.5.1 (dev), no slash is required

    https://devserver:9443/wsi/FNCEWS40MTOM - succeeds

    How’s that for silly?

    Now to see if it all works with WCF.

    Thanks again.
    Wow, I definitely would not have expected that to be a problem. The trailing slash issue is so common that most software layers automatically make it work the way you want without much fuss for you.

    Thanks for sharing, and let us all know if it also cures WCF.
  • RyanG
    RyanG
    13 Posts

    Re: Call 4.5.0 CEWS using WCF?

    ‏2012-05-18T19:18:20Z  
    Wow, I definitely would not have expected that to be a problem. The trailing slash issue is so common that most software layers automatically make it work the way you want without much fuss for you.

    Thanks for sharing, and let us all know if it also cures WCF.
    Indeed.

    It does work with WCF, so we're golden!

    Thanks!