Return-Path: Delivered-To: apmail-cxf-issues-archive@www.apache.org Received: (qmail 81386 invoked from network); 26 Aug 2010 21:26:18 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 26 Aug 2010 21:26:18 -0000 Received: (qmail 45406 invoked by uid 500); 26 Aug 2010 21:26:17 -0000 Delivered-To: apmail-cxf-issues-archive@cxf.apache.org Received: (qmail 45349 invoked by uid 500); 26 Aug 2010 21:26:17 -0000 Mailing-List: contact issues-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list issues@cxf.apache.org Received: (qmail 45340 invoked by uid 99); 26 Aug 2010 21:26:17 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 26 Aug 2010 21:26:17 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.22] (HELO thor.apache.org) (140.211.11.22) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 26 Aug 2010 21:26:16 +0000 Received: from thor (localhost [127.0.0.1]) by thor.apache.org (8.13.8+Sun/8.13.8) with ESMTP id o7QLPuAG022223 for ; Thu, 26 Aug 2010 21:25:56 GMT Message-ID: <13485395.16611282857956199.JavaMail.jira@thor> Date: Thu, 26 Aug 2010 17:25:56 -0400 (EDT) From: "Sergey Beryozkin (JIRA)" To: issues@cxf.apache.org Subject: [jira] Commented: (CXF-2903) Unexpected HTTP response code for @Consumes mismatch In-Reply-To: <3218510.509101279759911415.JavaMail.jira@thor> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/CXF-2903?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12903077#action_12903077 ] Sergey Beryozkin commented on CXF-2903: --------------------------------------- The following code should do much better : if (pathMatched == 0) { status = 404; } else if (methodMatched == 0) { status = 405; } else if (consumeMatched <= produceMatched) { status = 415; } else { status = 406; } If we have either path or method not matching at all then it's 404 or 405. But if we have at least one HTTP verb match (in which case we definitely had at least one (the corresponding) path matched) then even if we had many other methods with verbs not matched, we still have case of a pretty close match where path and HTTP method matched and thus it is either a consume or produce mismatch. thanks > Unexpected HTTP response code for @Consumes mismatch > ---------------------------------------------------- > > Key: CXF-2903 > URL: https://issues.apache.org/jira/browse/CXF-2903 > Project: CXF > Issue Type: Bug > Components: JAX-RS > Affects Versions: 2.2.9, 2.2.10 > Reporter: Donal Fellows > Attachments: example.zip, taverna.log > > > I have an interface with a method annotated as accepting XML (with {{@Consumes("application/xml")}} and {{@POST}}) and a class that implements that interface; the {{@Path}} is not matched for {{@POST}} by any other method. When I call it and pass in content with that MIME type, it all works. When I pass in content of another MIME type, I get a 404 response; this is unexpected, as I'd expect a 406 (Not Acceptable) response that tells me to pass in XML (to be clear, this _is_ an error case). Having to work around this by accepting all types and doing my own content type negotiation is unacceptable, especially since that decreases the utility of the generated WADL file significantly. Surely CXF should be doing this sort of work for me? -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.