You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Sergey Pulyaev (JIRA)" <ji...@apache.org> on 2008/05/27 14:13:38 UTC

[jira] Created: (CXF-1613) Microsoft Reporting Services Requests support

Microsoft Reporting Services Requests support
---------------------------------------------

                 Key: CXF-1613
                 URL: https://issues.apache.org/jira/browse/CXF-1613
             Project: CXF
          Issue Type: Improvement
          Components: Soap Binding
    Affects Versions: 2.0.6
         Environment: Windows XP Pro, MS SQL Server 2005, Apache CXF 2.0.5
            Reporter: Sergey Pulyaev
            Priority: Minor
         Attachments: DocLiteralInInterceptor.diff

http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3399523&SiteID=1

Hello,

I am using MS Sql Server Reporting Services with web services written in java.

Here is my query:

Code Snippet

<Query>
  <Method Namespace="http://test.com/" Name="getLoggedActivity">
  <Parameters>
    <Parameter Name="userID" Type="Integer" />
</Parameters>
</Method>
   <SoapAction>http://test.com/getLoggedActivity</SoapAction>
       <ElementPath IgnoreNamespaces="true">
             getLoggedActivityResponse{}/return{Date(Date),Purchaser}
       </ElementPath>
</Query>



SSRS produces following request:

Code Snippet

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getLoggedActivity xmlns="http://ws.test.com/">
      <userId>1</userId>
    </getLoggedActivity>
  </soap:Body>
</soap:Envelope>

But CXF waiting for the following request:

Code Snippet

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.test.com/">
   <soap:Body>
      <ws:getLoggedActivity>
         <userId>1</userId>
      </ws:getLoggedActivity>
   </soap:Body>
</soap:Envelope>

In other words - in request from SQL reporting services attributes of method call obtains namespaces "http://ws.test.com/"  instead of empty one - and do not found by DocLiteralInInterceptor to apply as parameters of method call.

I made a patch to support this situation.

Best regards, Sergey

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (CXF-1613) Microsoft Reporting Services Requests support

Posted by "Sergey Pulyaev (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1613?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sergey Pulyaev updated CXF-1613:
--------------------------------

    Attachment: request.wsdl

I attached the wsdl that generated by CXF.

> Microsoft Reporting Services Requests support
> ---------------------------------------------
>
>                 Key: CXF-1613
>                 URL: https://issues.apache.org/jira/browse/CXF-1613
>             Project: CXF
>          Issue Type: Improvement
>          Components: Soap Binding
>    Affects Versions: 2.0.6
>         Environment: Windows XP Pro, MS SQL Server 2005, Apache CXF 2.0.5
>            Reporter: Sergey Pulyaev
>            Priority: Minor
>         Attachments: DocLiteralInInterceptor.diff, request.wsdl
>
>
> http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3399523&SiteID=1
> Hello,
> I am using MS Sql Server Reporting Services with web services written in java.
> Here is my query:
> Code Snippet
> <Query>
>   <Method Namespace="http://test.com/" Name="getLoggedActivity">
>   <Parameters>
>     <Parameter Name="userID" Type="Integer" />
> </Parameters>
> </Method>
>    <SoapAction>http://test.com/getLoggedActivity</SoapAction>
>        <ElementPath IgnoreNamespaces="true">
>              getLoggedActivityResponse{}/return{Date(Date),Purchaser}
>        </ElementPath>
> </Query>
> SSRS produces following request:
> Code Snippet
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>   <soap:Body>
>     <getLoggedActivity xmlns="http://ws.test.com/">
>       <userId>1</userId>
>     </getLoggedActivity>
>   </soap:Body>
> </soap:Envelope>
> But CXF waiting for the following request:
> Code Snippet
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.test.com/">
>    <soap:Body>
>       <ws:getLoggedActivity>
>          <userId>1</userId>
>       </ws:getLoggedActivity>
>    </soap:Body>
> </soap:Envelope>
> In other words - in request from SQL reporting services attributes of method call obtains namespaces "http://ws.test.com/"  instead of empty one - and do not found by DocLiteralInInterceptor to apply as parameters of method call.
> I made a patch to support this situation.
> Best regards, Sergey

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CXF-1613) Microsoft Reporting Services Requests support

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CXF-1613?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12603649#action_12603649 ] 

Daniel Kulp commented on CXF-1613:
----------------------------------


The schema specifically says:

elementFormDefault="unqualified"

Thus, the message CXF is expecting is the correct message and the one SSRS is producing is wrong.  This is a bug in SSRS.

Now, that said, from the description, I assume you control the service?    Is this a wsdl first or code first case?      If it's wsdl first, you could modify the wsdl/schema to change the above to "qualified" and regenerate the code.

If it's code first, there are ways to set it via spring:
  <jaxws:server address="/jaxwsAndJaxb" 
    serviceClass="org.apache.cxf.authservice.AuthService"> 
    <jaxws:serviceBean> 
      <bean class="org.apache.cxf.authservice.AuthServiceImpl" /> 
    </jaxws:serviceBean> 
    <jaxws:serviceFactory> 
<bean class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean"> 
<property name="qualifiedSchemas" value="true"/> 
</bean> 
    </jaxws:serviceFactory> 
   </jaxws:server> 


or via an annotation in the package-info.java.   
@javax.xml.bind.annotation.XmlSchema(
	namespace = "yyy", 
       elementFormDefault=javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package yyy;


> Microsoft Reporting Services Requests support
> ---------------------------------------------
>
>                 Key: CXF-1613
>                 URL: https://issues.apache.org/jira/browse/CXF-1613
>             Project: CXF
>          Issue Type: Improvement
>          Components: Soap Binding
>    Affects Versions: 2.0.6
>         Environment: Windows XP Pro, MS SQL Server 2005, Apache CXF 2.0.5
>            Reporter: Sergey Pulyaev
>            Priority: Minor
>         Attachments: DocLiteralInInterceptor.diff, request.wsdl
>
>
> http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3399523&SiteID=1
> Hello,
> I am using MS Sql Server Reporting Services with web services written in java.
> Here is my query:
> Code Snippet
> <Query>
>   <Method Namespace="http://test.com/" Name="getLoggedActivity">
>   <Parameters>
>     <Parameter Name="userID" Type="Integer" />
> </Parameters>
> </Method>
>    <SoapAction>http://test.com/getLoggedActivity</SoapAction>
>        <ElementPath IgnoreNamespaces="true">
>              getLoggedActivityResponse{}/return{Date(Date),Purchaser}
>        </ElementPath>
> </Query>
> SSRS produces following request:
> Code Snippet
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>   <soap:Body>
>     <getLoggedActivity xmlns="http://ws.test.com/">
>       <userId>1</userId>
>     </getLoggedActivity>
>   </soap:Body>
> </soap:Envelope>
> But CXF waiting for the following request:
> Code Snippet
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.test.com/">
>    <soap:Body>
>       <ws:getLoggedActivity>
>          <userId>1</userId>
>       </ws:getLoggedActivity>
>    </soap:Body>
> </soap:Envelope>
> In other words - in request from SQL reporting services attributes of method call obtains namespaces "http://ws.test.com/"  instead of empty one - and do not found by DocLiteralInInterceptor to apply as parameters of method call.
> I made a patch to support this situation.
> Best regards, Sergey

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (CXF-1613) Microsoft Reporting Services Requests support

Posted by "Sergey Pulyaev (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1613?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sergey Pulyaev updated CXF-1613:
--------------------------------

    Attachment: DocLiteralInInterceptor.diff

Diff file of patch

> Microsoft Reporting Services Requests support
> ---------------------------------------------
>
>                 Key: CXF-1613
>                 URL: https://issues.apache.org/jira/browse/CXF-1613
>             Project: CXF
>          Issue Type: Improvement
>          Components: Soap Binding
>    Affects Versions: 2.0.6
>         Environment: Windows XP Pro, MS SQL Server 2005, Apache CXF 2.0.5
>            Reporter: Sergey Pulyaev
>            Priority: Minor
>         Attachments: DocLiteralInInterceptor.diff
>
>
> http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3399523&SiteID=1
> Hello,
> I am using MS Sql Server Reporting Services with web services written in java.
> Here is my query:
> Code Snippet
> <Query>
>   <Method Namespace="http://test.com/" Name="getLoggedActivity">
>   <Parameters>
>     <Parameter Name="userID" Type="Integer" />
> </Parameters>
> </Method>
>    <SoapAction>http://test.com/getLoggedActivity</SoapAction>
>        <ElementPath IgnoreNamespaces="true">
>              getLoggedActivityResponse{}/return{Date(Date),Purchaser}
>        </ElementPath>
> </Query>
> SSRS produces following request:
> Code Snippet
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>   <soap:Body>
>     <getLoggedActivity xmlns="http://ws.test.com/">
>       <userId>1</userId>
>     </getLoggedActivity>
>   </soap:Body>
> </soap:Envelope>
> But CXF waiting for the following request:
> Code Snippet
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.test.com/">
>    <soap:Body>
>       <ws:getLoggedActivity>
>          <userId>1</userId>
>       </ws:getLoggedActivity>
>    </soap:Body>
> </soap:Envelope>
> In other words - in request from SQL reporting services attributes of method call obtains namespaces "http://ws.test.com/"  instead of empty one - and do not found by DocLiteralInInterceptor to apply as parameters of method call.
> I made a patch to support this situation.
> Best regards, Sergey

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (CXF-1613) Microsoft Reporting Services Requests support

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1613?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp resolved CXF-1613.
------------------------------

       Resolution: Invalid
    Fix Version/s: Invalid
         Assignee: Daniel Kulp


Resolving this as "invalid" as the request CXF is expecting is the correct one based on the WSDL.  

> Microsoft Reporting Services Requests support
> ---------------------------------------------
>
>                 Key: CXF-1613
>                 URL: https://issues.apache.org/jira/browse/CXF-1613
>             Project: CXF
>          Issue Type: Improvement
>          Components: Soap Binding
>    Affects Versions: 2.0.6
>         Environment: Windows XP Pro, MS SQL Server 2005, Apache CXF 2.0.5
>            Reporter: Sergey Pulyaev
>            Assignee: Daniel Kulp
>            Priority: Minor
>             Fix For: Invalid
>
>         Attachments: DocLiteralInInterceptor.diff, request.wsdl
>
>
> http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3399523&SiteID=1
> Hello,
> I am using MS Sql Server Reporting Services with web services written in java.
> Here is my query:
> Code Snippet
> <Query>
>   <Method Namespace="http://test.com/" Name="getLoggedActivity">
>   <Parameters>
>     <Parameter Name="userID" Type="Integer" />
> </Parameters>
> </Method>
>    <SoapAction>http://test.com/getLoggedActivity</SoapAction>
>        <ElementPath IgnoreNamespaces="true">
>              getLoggedActivityResponse{}/return{Date(Date),Purchaser}
>        </ElementPath>
> </Query>
> SSRS produces following request:
> Code Snippet
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>   <soap:Body>
>     <getLoggedActivity xmlns="http://ws.test.com/">
>       <userId>1</userId>
>     </getLoggedActivity>
>   </soap:Body>
> </soap:Envelope>
> But CXF waiting for the following request:
> Code Snippet
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.test.com/">
>    <soap:Body>
>       <ws:getLoggedActivity>
>          <userId>1</userId>
>       </ws:getLoggedActivity>
>    </soap:Body>
> </soap:Envelope>
> In other words - in request from SQL reporting services attributes of method call obtains namespaces "http://ws.test.com/"  instead of empty one - and do not found by DocLiteralInInterceptor to apply as parameters of method call.
> I made a patch to support this situation.
> Best regards, Sergey

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CXF-1613) Microsoft Reporting Services Requests support

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CXF-1613?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12600828#action_12600828 ] 

Daniel Kulp commented on CXF-1613:
----------------------------------


I would need to see the wsdl/schema for this.   The patch is definitely not correct as the ElementQName  is always the fully qualified qname, but the ConcreteName is what is expected according to the schema.  Basically, it looks like CXF is expecting the request to have unqualified schemas (elementFormDefault=unqualified), but SSRS is generating it qualified.   Again, I'd need to see the wsdl to figure out which is correct.







> Microsoft Reporting Services Requests support
> ---------------------------------------------
>
>                 Key: CXF-1613
>                 URL: https://issues.apache.org/jira/browse/CXF-1613
>             Project: CXF
>          Issue Type: Improvement
>          Components: Soap Binding
>    Affects Versions: 2.0.6
>         Environment: Windows XP Pro, MS SQL Server 2005, Apache CXF 2.0.5
>            Reporter: Sergey Pulyaev
>            Priority: Minor
>         Attachments: DocLiteralInInterceptor.diff
>
>
> http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3399523&SiteID=1
> Hello,
> I am using MS Sql Server Reporting Services with web services written in java.
> Here is my query:
> Code Snippet
> <Query>
>   <Method Namespace="http://test.com/" Name="getLoggedActivity">
>   <Parameters>
>     <Parameter Name="userID" Type="Integer" />
> </Parameters>
> </Method>
>    <SoapAction>http://test.com/getLoggedActivity</SoapAction>
>        <ElementPath IgnoreNamespaces="true">
>              getLoggedActivityResponse{}/return{Date(Date),Purchaser}
>        </ElementPath>
> </Query>
> SSRS produces following request:
> Code Snippet
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>   <soap:Body>
>     <getLoggedActivity xmlns="http://ws.test.com/">
>       <userId>1</userId>
>     </getLoggedActivity>
>   </soap:Body>
> </soap:Envelope>
> But CXF waiting for the following request:
> Code Snippet
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.test.com/">
>    <soap:Body>
>       <ws:getLoggedActivity>
>          <userId>1</userId>
>       </ws:getLoggedActivity>
>    </soap:Body>
> </soap:Envelope>
> In other words - in request from SQL reporting services attributes of method call obtains namespaces "http://ws.test.com/"  instead of empty one - and do not found by DocLiteralInInterceptor to apply as parameters of method call.
> I made a patch to support this situation.
> Best regards, Sergey

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.