<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>后院&#124;kevin’s backyard &#187; modjy</title>
	<atom:link href="http://kevin.9511.net/archives/tag/modjy/feed" rel="self" type="application/rss+xml" />
	<link>http://kevin.9511.net</link>
	<description>立志做一个混事业型男人</description>
	<lastBuildDate>Fri, 30 Apr 2010 16:55:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>jython+modjy在GoogleAppEngine上开发的几个小问题</title>
		<link>http://kevin.9511.net/archives/451.html</link>
		<comments>http://kevin.9511.net/archives/451.html#comments</comments>
		<pubDate>Wed, 13 Jan 2010 19:38:51 +0000</pubDate>
		<dc:creator>kevin</dc:creator>
				<category><![CDATA[七零八碎]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[jython]]></category>
		<category><![CDATA[modjy]]></category>

		<guid isPermaLink="false">http://kevin.9511.net/?p=451</guid>
		<description><![CDATA[也许是因为比较新或者应用范围有限，网上关于jython+modjy的资料实在少的很。再加上google appengine这个比较特殊的平台，甭说例子了，连点有用的文章都没有。我最近在GAE上用jython+modjy做了个小玩意，折腾了好几天，写这篇文章总结一下开发过程中遇到了几个小问题
1，在每个程序的第一行声明源文件的编码格式
不管是Jython还是Python，如果不做这个声明，不管你是否将文件存为了UTF-8格式或者其他什么格式，源文件将以默认的ASCII编码格式进行处理。这也是一些中文乱码出现的原因，所以，指定编码格式是个好习惯！以下这两种种方式都是正确的：

# coding=utf-8
# -*- coding: latin-1 -*-

更多格式可参考：http://www.python.org/dev/peps/pep-0263/
2，Unicode对象
与Python一样，在Jython内部是用Unicode来处理字符串的。经Jython做过处理的字符串，最终显示时均需要用unicode对象的encode()方法转换成相应编码方式进行显示，未进行操作过的硬编码除外。代码片段如下：
bs=&#8221;红梅&#8221;+&#8221;红河&#8221;    &#60;==此时经过“+”操作，bs为unicode对象。
bs.encode(&#8217;utf-8&#8242;) &#60;==解码后可以utf-8编码方式显示。
3，获得get/post数据的方式
除了在jython内调用JAVA类的方式之外，可以用以下方法获得：
post = environ['j2ee.request']
bs = post.getParameterValues(&#8217;atom&#8217;)[0]
其中环境变量environ['j2ee.request']，其实是一个 org.mortbay.jetty.Request 对象
应该还有其他更简单的方式，不过我没找到。
]]></description>
			<content:encoded><![CDATA[<p>也许是因为比较新或者应用范围有限，网上关于jython+modjy的资料实在少的很。再加上google appengine这个比较特殊的平台，甭说例子了，连点有用的文章都没有。我最近在GAE上用jython+modjy做了个小玩意，折腾了好几天，写这篇文章总结一下开发过程中遇到了几个小问题</p>
<p>1，在每个程序的第一行声明源文件的编码格式</p>
<p>不管是Jython还是Python，如果不做这个声明，不管你是否将文件存为了UTF-8格式或者其他什么格式，源文件将以默认的ASCII编码格式进行处理。这也是一些中文乱码出现的原因，所以，指定编码格式是个好习惯！以下这两种种方式都是正确的：</p>
<blockquote>
<pre># coding=utf-8
# -*- coding: latin-1 -*-</pre>
</blockquote>
<p>更多格式可参考：http://www.python.org/dev/peps/pep-0263/<span id="more-451"></span></p>
<p>2，Unicode对象</p>
<p>与Python一样，在Jython内部是用Unicode来处理字符串的。经Jython做过处理的字符串，最终显示时均需要用unicode对象的encode()方法转换成相应编码方式进行显示，未进行操作过的硬编码除外。代码片段如下：</p>
<blockquote><p>bs=&#8221;红梅&#8221;+&#8221;红河&#8221;    &lt;==此时经过“+”操作，bs为unicode对象。<br />
bs.encode(&#8217;utf-8&#8242;) &lt;==解码后可以utf-8编码方式显示。</p></blockquote>
<p>3，获得get/post数据的方式</p>
<p>除了在jython内调用JAVA类的方式之外，可以用以下方法获得：</p>
<blockquote><p>post = environ['j2ee.request']<br />
bs = post.getParameterValues(&#8217;atom&#8217;)[0]</p></blockquote>
<p>其中环境变量environ['j2ee.request']，其实是一个 org.mortbay.jetty.Request 对象</p>
<p>应该还有其他更简单的方式，不过我没找到。</p>
]]></content:encoded>
			<wfw:commentRss>http://kevin.9511.net/archives/451.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jython+Modjy+GoogleAppEngine</title>
		<link>http://kevin.9511.net/archives/442.html</link>
		<comments>http://kevin.9511.net/archives/442.html#comments</comments>
		<pubDate>Wed, 13 Jan 2010 18:44:01 +0000</pubDate>
		<dc:creator>kevin</dc:creator>
				<category><![CDATA[七零八碎]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jython]]></category>
		<category><![CDATA[modjy]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://kevin.9511.net/?p=442</guid>
		<description><![CDATA[Modjy是一个让Jython应用可以在Java Servlet容器内运行的桥梁，是一个标准的WSGI实现。并且该项目已经被正式纳入到了Jython项目中。
现在Jython和modjy也可以在目前世界上最大的Servlet容器——Google AppEngine上运行了。
之前要使Jython运行在Google AppEngine上，是需要使用Google发布的的一个补丁，但最新的Jython2.5版已经不需要了。
Google AppEngine服务限制每个应用程序所包含的文件不能大于1000个。但是Jython的Lib目录下文件很多，显然已经超过了这个限制。最简单的解决方法是把所有的库文件都放在一个ZIP文件内。然后，还需要建立一个.pth文件应来指向这个zip文件。这个.pth文件的主文件名是什么无所谓，可以随便起。文件内容只需一句话“lib.zip”。把all.pth和lib.zip一起放在你的GoogleAppEngine项目WEB-INF/lib-python目录下。
这个过程看起来比较复杂，不过没关系，modjy官方提供了一个制作好的包，你只需要下载Jython2.5，并把jython.jar文件复制到WEB-INF/lib目录下就好了。
下面的链接是这个包的地址：
http://code.google.com/p/rui7905/downloads/detail?name=modjy_webapp.zip
OR
http://downloads.xhaus.com/modjy_webapp_google_appengine/
里面还包含一个完整的使用modjy开发的demo程序，可以直接不经修改的在GoogleAppEngine上运行。样子看这里：http://jywsgi.appspot.com/ 。整个压缩包的结构如下：

以上文字大部分翻译自modjy官方的一个说明，原文在这里。
参考文档
http://code.google.com/appengine/docs/java/overview.html
http://opensource.xhaus.com/projects/modjy/wiki
]]></description>
			<content:encoded><![CDATA[<p><a href="http://modjy.xhaus.com/" target="_blank">Modjy</a>是一个让<a href="http://www.jython.org/" target="_blank">Jython</a>应用可以在Java Servlet容器内运行的桥梁，是一个标准的<a href="http://zh.wikipedia.org/wiki/WSGI" target="_blank">WSGI</a>实现。并且该项目已经被正式纳入到了Jython项目中。</p>
<p>现在Jython和modjy也可以在目前世界上最大的Servlet容器——Google AppEngine上运行了。</p>
<p>之前要使Jython运行在Google AppEngine上，是需要使用Google发布的的一个补丁，但最新的Jython2.5版已经不需要了。<span id="more-442"></span></p>
<p>Google AppEngine服务限制每个应用程序所包含的文件不能大于1000个。但是Jython的Lib目录下文件很多，显然已经超过了这个限制。最简单的解决方法是把所有的库文件都放在一个ZIP文件内。然后，还需要建立一个.pth文件应来指向这个zip文件。这个.pth文件的主文件名是什么无所谓，可以随便起。文件内容只需一句话“lib.zip”。把all.pth和lib.zip一起放在你的GoogleAppEngine项目WEB-INF/lib-python目录下。</p>
<p>这个过程看起来比较复杂，不过没关系，modjy官方提供了一个制作好的包，你只需要下载Jython2.5，并把jython.jar文件复制到WEB-INF/lib目录下就好了。</p>
<p>下面的链接是这个包的地址：<br />
<a href="http://code.google.com/p/rui7905/downloads/detail?name=modjy_webapp.zip" target="_blank">http://code.google.com/p/rui7905/downloads/detail?name=modjy_webapp.zip</a><br />
OR<br />
<a href="http://downloads.xhaus.com/modjy_webapp_google_appengine/" target="_blank">http://downloads.xhaus.com/modjy_webapp_google_appengine/</a></p>
<p>里面还包含一个完整的使用modjy开发的demo程序，可以直接不经修改的在GoogleAppEngine上运行。样子看这里：<a href="http://jywsgi.appspot.com/" target="_blank">http://jywsgi.appspot.com/</a> 。整个压缩包的结构如下：</p>
<p><img class="alignnone size-full wp-image-449" title="modjy_webapp" src="http://kevin.9511.net/wp-content/uploads/2010/01/modjy_webapp.png" alt="modjy_webapp" width="435" height="208" /></p>
<p>以上文字大部分翻译自modjy官方的一个说明，<a href="http://opensource.xhaus.com/projects/modjy/wiki/ModjyGoogleAppEngine">原文在这里</a>。<br />
参考文档<br />
<a href="http://code.google.com/appengine/docs/java/overview.html" target="_blank">http://code.google.com/appengine/docs/java/overview.html</a><br />
<a href="http://opensource.xhaus.com/projects/modjy/wiki" target="_blank">http://opensource.xhaus.com/projects/modjy/wiki</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kevin.9511.net/archives/442.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
