- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的任务是为我们基于 ColdFusion 8 的 CMS 系统创建 API。在做了一些研究之后,我决定 RESTful API 是最好的选择,原因有以下三个:
鉴于我首先是一名应用程序/系统程序员,高级 Web 开发不是我的强项,因此我没有重新发明轮子,而是开始为我们的 API 寻找一些框架。
我选择了 Taffy主要是因为我发现它的设计比 PowerNap 和 FW/1 更优雅,但是我在实现它时遇到了一些麻烦。
根据文档,我将解压缩的“taffy”文件夹放在我们的网站根目录中,并在我们的开发站点中创建了一个 api 目录 -
xxx.xxx.xxx.xxx/dev.cms/api_mk3
里面是目录:
/resources/studentCollection.cfc
/resources/studentMember.cfc
/Application.cfc
/index.cfm
四个文件的内容如下:
studentCollection.cfc
<cfscript>
component extends="taffy.core.resource" taffy:uri="/students" {
public function get() {
//query the database for matches, making use of optional parameter "eyeColor" if provided
//then...
var someCollectionObject = ArrayNew(1);
someCollectionObject[1] = "Jason Bristol";
return representationOf(someCollectionObject).withStatus(200); //collection might be query, array, etc
}
}
</cfscript>
studentMember.cfc
<cfscript>
component extends="taffy.core.resource" taffy:uri="/students/{personName}" {
public function get(string personName) {
//find the requested person, by name
//then...
return noData().withStatus(404);//representationOf(personName).withStatus(200); //member might be a structure, ORM entity, etc
}
}
</cfscript>
应用程序.cfc
<cfcomponent extends="taffy.core.api">
<cfscript>
this.name = 'CMS-API';
variables.framework = {};
variables.framework.debugKey = "debug";
variables.framework.reloadKey = "reload";
variables.framework.reloadPassword = "true";
variables.framework.representationClass = "taffy.core.genericRepresentation";
variables.framework.returnExceptionsAsJson = true;
// do your onApplicationStart stuff here
function applicationStartEvent() {
}
// do your onRequestStart stuff here
function requestStartEvent() {
}
// this function is called after the request has been parsed and all request details are known
function onTaffyRequest(verb, cfc, requestArguments, mimeExt) {
// this would be a good place for you to check API key validity and other non-resource-specific validation
return true;
}
</cfscript>
索引.cfm
Blank, as per the documentation.
我遇到的问题是,如果我要导航到
xxx.xxx.xxx.xxx/dev.cms/api_mk3/index.cfm/students
我会得到一个 404
[14:57:02.963] GET http://xxx.xxx.xxx.xxx/dev.cms/api_mk3/index.cfm/students [HTTP/1.1 404 Not Found 56ms]
Request URL:
http://xxx.xxx.xxx.xxx/dev.cms/api_mk3/index.cfm/students
Request Method:
GET
Status Code:
HTTP/1.1 404 Not Found
Request Headers
14:57:02.000
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0
Host:xxx.xxx.xxx.xxx
Connection:keep-alive
Accept-Language:en-US,en;q=0.5
Accept-Encoding:gzip, deflate
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Sent Cookie
CFTOKEN:85979056CFID:1194857
Response Headers
Δ56ms
X-Powered-By:ASP.NETServer:Microsoft-IIS/6.0
Date:Fri, 17 May 2013 18:57:37 GMT
Content-Type:text/html; charset=UTF-8
Connection:close
现在假设我理解正确,我应该有一个 .json 格式的响应“Jason Bristol”或类似的东西。
我怀疑 IIS6 中的 MIME 类型或 URL 重写有问题,但我不知道如何更正此问题的具体细节。一段时间以来,我一直在插入升级到 Windows Server 2008 RC2,但没有成功。
这是操作错误还是可以修复?
编辑:从我所看到的,我在 CF 日志中什么也没有得到。以下是 IIS 日志中的条目:
2013-05-20 13:56:20 W3SVC4 10.40.204.236 GET /dev.cms/api_mk3/index.cfm/students - 80 - 70.88.47.65 Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/537.31+(KHTML,+like+Gecko)+Chrome/26.0.1410.64+Safari/537.31 404 0 0
最佳答案
这是 tomcat 上普通安装的已知问题。 (如果你用tomcat?)
您可以在 web.xml 文件中添加一个额外的 servlet 映射。
<servlet-mapping>
<servlet-name>CFMLServlet</servlet-name>
<url-pattern>/api/index.cfm/*</url-pattern>
</servlet-mapping>
https://github.com/atuttle/Taffy/wiki/404-issue-with-Railo-or-Tomcat-and-API-in-a-sub-folder
关于coldfusion - 尝试在 ColdFusion 8/Windows Server 2003/IIS6 上使用 taffy RESTful API 框架时出现 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16616318/
我已经设置了我的第一个 REST API,并且我是使用 Taffy 框架的新手。 我有一个使用 ColdFusion 10、IIS 并使用 ColdBox 的站点。我在目录中设置了一个 hello w
我的任务是为我们基于 ColdFusion 8 的 CMS 系统创建 API。在做了一些研究之后,我决定 RESTful API 是最好的选择,原因有以下三个: 非常简单易用 相当容易实现 出色的长期
我是一名优秀的程序员,十分优秀!