﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-winder-文章分类-JAVA</title><link>http://www.blogjava.net/winderain/category/31493.html</link><description>             DB&amp;JAVA</description><language>zh-cn</language><lastBuildDate>Tue, 22 Mar 2011 00:30:09 GMT</lastBuildDate><pubDate>Tue, 22 Mar 2011 00:30:09 GMT</pubDate><ttl>60</ttl><item><title>修改web.xml导致应用在WEBLOGIC上不能发布，即使发布成功，也不能启动</title><link>http://www.blogjava.net/winderain/articles/346561.html</link><dc:creator>winderain</dc:creator><author>winderain</author><pubDate>Fri, 18 Mar 2011 11:06:00 GMT</pubDate><guid>http://www.blogjava.net/winderain/articles/346561.html</guid><wfw:comment>http://www.blogjava.net/winderain/comments/346561.html</wfw:comment><comments>http://www.blogjava.net/winderain/articles/346561.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/winderain/comments/commentRss/346561.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/winderain/services/trackbacks/346561.html</trackback:ping><description><![CDATA[<p>
同事在Weblogic上发布应用，碰到如下错误：</p>
<div style="padding: 4px 5px 4px 4px; border: 1px solid rgb(204, 204, 204); width: 98%; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: rgb(0, 128, 128);">&nbsp;1</span><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: rgb(0, 0, 0);">java.lang.IllegalArgumentException:&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">tializeContext</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;is&nbsp;defined&nbsp;as&nbsp;injection&nbsp;target&nbsp;in&nbsp;descriptor&nbsp;file&nbsp;</span><span style="color: rgb(0, 0, 255);">for</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">com.ufida.hap.cxf.CXFServiceImpl</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,&nbsp;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;2</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />but&nbsp;either&nbsp;field&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">tializeContext</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;or&nbsp;method&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">setTializeContext</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;cannot&nbsp;be&nbsp;found&nbsp;within&nbsp;the&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">.<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;3</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;weblogic.j2ee.dd.xml.validator.injectiontarget.BaseValidator.error(BaseValidator.java:</span><span style="color: rgb(0, 0, 0);">132</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;4</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;weblogic.j2ee.dd.xml.validator.injectiontarget.BaseValidator.checkUndefinedMethodField(BaseValidator.java:</span><span style="color: rgb(0, 0, 0);">82</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;5</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;weblogic.j2ee.dd.xml.validator.AbstractAnnotationValidator.validate(AbstractAnnotationValidator.java:</span><span style="color: rgb(0, 0, 0);">39</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;6</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;weblogic.j2ee.dd.xml.validator.AnnotationValidatorVisitor.visitInjectionTargetBean(AnnotationValidatorVisitor.java:</span><span style="color: rgb(0, 0, 0);">48</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;7</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;weblogic.j2ee.dd.xml.validator.AnnotationValidatorVisitor.visit(AnnotationValidatorVisitor.java:</span><span style="color: rgb(0, 0, 0);">25</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;8</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;weblogic.descriptor.internal.AbstractDescriptorBean.accept(AbstractDescriptorBean.java:</span><span style="color: rgb(0, 0, 0);">1125</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;9</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;weblogic.descriptor.internal.AbstractDescriptorBean.accept(AbstractDescriptorBean.java:</span><span style="color: rgb(0, 0, 0);">1129</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">10</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;weblogic.descriptor.internal.AbstractDescriptorBean.accept(AbstractDescriptorBean.java:</span><span style="color: rgb(0, 0, 0);">1129</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">11</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;weblogic.j2ee.dd.xml.BaseJ2eeAnnotationProcessor.validate(BaseJ2eeAnnotationProcessor.java:</span><span style="color: rgb(0, 0, 0);">144</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">12</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;weblogic.j2ee.dd.xml.BaseJ2eeAnnotationProcessor.validate(BaseJ2eeAnnotationProcessor.java:</span><span style="color: rgb(0, 0, 0);">132</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">13</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;weblogic.servlet.internal.WebAnnotationProcessorImpl.processJ2eeAnnotations(WebAnnotationProcessorImpl.java:</span><span style="color: rgb(0, 0, 0);">213</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">14</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;weblogic.servlet.internal.WebAnnotationProcessorImpl.processAnnotations(WebAnnotationProcessorImpl.java:</span><span style="color: rgb(0, 0, 0);">105</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">15</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;weblogic.servlet.internal.WebAppServletContext.processAnnotations(WebAppServletContext.java:</span><span style="color: rgb(0, 0, 0);">1359</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">16</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;weblogic.servlet.internal.WebAppServletContext.</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);">init</span><span style="color: rgb(0, 0, 0);">&gt;</span><span style="color: rgb(0, 0, 0);">(WebAppServletContext.java:</span><span style="color: rgb(0, 0, 0);">440</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">17</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;weblogic.servlet.internal.WebAppServletContext.</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);">init</span><span style="color: rgb(0, 0, 0);">&gt;</span><span style="color: rgb(0, 0, 0);">(WebAppServletContext.java:</span><span style="color: rgb(0, 0, 0);">484</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">18</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;weblogic.servlet.internal.HttpServer.loadWebApp(HttpServer.java:</span><span style="color: rgb(0, 0, 0);">418</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">19</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;weblogic.servlet.internal.WebAppModule.registerWebApp(WebAppModule.java:</span><span style="color: rgb(0, 0, 0);">976</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">20</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:</span><span style="color: rgb(0, 0, 0);">381</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">21</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;weblogic.application.internal.flow.ScopedModuleDriver.prepare(ScopedModuleDriver.java:</span><span style="color: rgb(0, 0, 0);">176</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">22</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span></div>
<p>查了很长时间，也不知所以然，看错误信息，是Spring注入错误，但是该CXFServiceImpl没有问题啊，而且在tomcat下是没有问题的，可以正常使用。</p>
<p>找了很久，对比了spring的配置文件，均没有发现异常；最后同事说另外一个同事修改过web.xml；和可以运行的应用的web.xml对比，发现不能运行的web.xml中多了一些命名空间，删除web-app后面的内容后，一切正常了！</p>
<p>总结：在weblogic上会校验这些内容，而这些内容估计和spring的某些东西冲突。如果在weblogic下发布，删除了吧</p>
<p>不能运行的web.xml具体如下</p>
<div style="padding: 4px 5px 4px 4px; border: 1px solid rgb(204, 204, 204); width: 98%; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: rgb(0, 128, 128);">1</span><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: rgb(0, 0, 255);">&lt;?</span><span style="color: rgb(255, 0, 255);">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: rgb(0, 0, 255);">?&gt;</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">2</span><span style="color: rgb(0, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">web-app&nbsp;</span><span style="color: rgb(255, 0, 0);">version</span><span style="color: rgb(0, 0, 255);">="2.5"</span><span style="color: rgb(255, 0, 0);">&nbsp;xmlns</span><span style="color: rgb(0, 0, 255);">="http://java.sun.com/xml/ns/javaee"</span><span style="color: rgb(255, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">3</span><span style="color: rgb(255, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsi</span><span style="color: rgb(0, 0, 255);">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: rgb(255, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">4</span><span style="color: rgb(255, 0, 0);"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation</span><span style="color: rgb(0, 0, 255);">="http://java.sun.com/xml/ns/javaee&nbsp;http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"</span><span style="color: rgb(0, 0, 255);">&gt;</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/winderain/aggbug/346561.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/winderain/" target="_blank">winderain</a> 2011-03-18 19:06 <a href="http://www.blogjava.net/winderain/articles/346561.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AndroMDA 4.x架构 翻译之一</title><link>http://www.blogjava.net/winderain/articles/323427.html</link><dc:creator>winderain</dc:creator><author>winderain</author><pubDate>Sat, 12 Jun 2010 06:56:00 GMT</pubDate><guid>http://www.blogjava.net/winderain/articles/323427.html</guid><wfw:comment>http://www.blogjava.net/winderain/comments/323427.html</wfw:comment><comments>http://www.blogjava.net/winderain/articles/323427.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/winderain/comments/commentRss/323427.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/winderain/services/trackbacks/323427.html</trackback:ping><description><![CDATA[<div class="componentheading" style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-weight: bold; font-family: Tahoma, Helvetica, Arial, sans-serif; color: #5aa428; font-size: 1.4em; padding-left: 0px; text-align: left; line-height: 15px; ">AndroMDA 4.x架构</div>
<table class="blog" cellpadding="0" cellspacing="0" style="border-width: initial; border-color: initial; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15px; ">
    <tbody>
        <tr>
            <td valign="top">
            <table width="100%" cellpadding="0" cellspacing="0" style="border-width: initial; border-color: initial; ">
                <tbody>
                    <tr>
                        <td valign="top" width="100%" class="article_column" style="padding-right: 5px; ">
                        <table class="contentpaneopen" style="border-width: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; width: auto; ">
                            <tbody>
                                <tr>
                                    <td class="contentheading" width="100%" style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Tahoma, Helvetica, sans-serif; font-size: 12px; font-weight: bold; vertical-align: bottom; color: #5aa428; text-align: left; width: 78px; ">体系结构目标</td>
                                    <td align="right" width="100%" class="buttonheading"><a href="http://www.andromda.org/index.php?view=article&amp;catid=36%3Aarchitectural-drivers&amp;id=84%3Agoals-for-the-architecture&amp;tmpl=component&amp;print=1&amp;layout=default&amp;page&amp;option=com_content&amp;Itemid=78" title="打印" rel="nofollow" style="text-decoration: none; font-weight: normal; color: #5aa428; "><img src="http://www.andromda.org/images/M_images/printButton.png" alt="打印" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; " /></a></td>
                                    <td align="right" width="100%" class="buttonheading"><a href="http://www.andromda.org/index.php?option=com_mailto&amp;tmpl=component&amp;link=aHR0cDovL3d3dy5hbmRyb21kYS5vcmcvaW5kZXgucGhwP29wdGlvbj1jb21fY29udGVudCZ2aWV3PWFydGljbGUmaWQ9ODQ6Z29hbHMtZm9yLXRoZS1hcmNoaXRlY3R1cmUmY2F0aWQ9MzY6YXJjaGl0ZWN0dXJhbC1kcml2ZXJzJkl0ZW1pZD03OA%3D%3D" title="电子邮件" style="text-decoration: none; font-weight: normal; color: #5aa428; "><img src="http://www.andromda.org/images/M_images/emailButton.png" alt="电子邮件" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; " /></a></td>
                                </tr>
                            </tbody>
                        </table>
                        <table class="contentpaneopen" style="border-width: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; width: auto; ">
                            <tbody>
                                <tr>
                                    <td width="70%" valign="top" colspan="2"><span class="small" style="font-size: 0.9em; color: #999999; font-weight: normal; text-align: left; ">Matthias Bohlen撰稿 winderain 翻译</span></td>
                                </tr>
                                <tr>
                                    <td valign="top" colspan="2" class="createdate" style="height: 20px; vertical-align: top; font-size: 0.9em; color: #999999; font-weight: normal; padding-bottom: 5px; padding-top: 0px; ">星期三，2006年3月22日17:55</td>
                                </tr>
                                <tr>
                                    <td valign="top" colspan="2">
                                    <p style="margin-top: 0px; margin-bottom: 5px; ">开发 AndroMDA 4 的几个原因。实时证明AndroMDA 3是当今代码生成任务最成功的架构，但已经可以看出，它难以应付未来新的任务。AndroMDA 4&nbsp;<strong>架构</strong>的<strong>目标</strong>有：</p>
                                    <h2 style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Tahoma, Helvetica, sans-serif; font-size: 12px; font-weight: bold; vertical-align: bottom; color: #5aa428; text-align: left; width: 909px; ">可配置和可扩展性</h2>
                                    <p style="margin-top: 0px; margin-bottom: 5px; ">我们应该让我们的用户比以前更容易（重新）配置和扩展AndroMDA。用户应该能够把AndroMDA作为一个组件使用，可以组织、链接，扩展和部署，以实现他们的代码生成的目标。可配置和可扩展性，必须支持以下功能：<br />
                                    </p>
                                    <h3 style="margin-top: 25px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-weight: bold; font-family: Tahoma, Helvetica, Arial, sans-serif; color: #5aa428; font-size: 1.4em; padding-left: 0px; text-align: left; ">可与其他UML metamodels（元模型）配合工作</h3>
                                    <p style="margin-top: 0px; margin-bottom: 5px; ">AndroMDA 3 是主要用于与UML配合使用。它可以和其他UML元模型配合工作，太糟糕了，没有人对其进行了测试。<br />
                                    </p>
                                    <p style="margin-top: 0px; margin-bottom: 5px; ">有些事情不容易在UML表示，例如，图形用户界面。domain specific languages (DSLs)能够更好的表述、形容此类事情AndroMDA 4 应支持任意的基于metamodels （元模型的）模型输入。</p>
                                    <h3 style="margin-top: 25px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-weight: bold; font-family: Tahoma, Helvetica, Arial, sans-serif; color: #5aa428; font-size: 1.4em; padding-left: 0px; text-align: left; ">重用，改造和chaining of off-the-shelf和定制cartridges</h3>
                                    <p style="margin-top: 0px; margin-bottom: 5px; ">在AndroMDA 3中，有可能从头开始写一个cartridge ，使用一个已有的cartridge或在一定范围内扩展已有的cartridge。然而，一个cartridge输入模型几乎总是依赖一个特定的UML配置文件（profile），使用户被迫以某种方式建模。一个fledged的输入总是&#8220;完全成熟&#8221;的模型，输出总是&#8220;准备使用&#8221;源代码。这种方法可以被称为&#8220;百分百方法the always 100% approach&#8221;。大面积使用cartridges不可能用非常精细和复用，比如：cartridges A 做30％的工作，cartridges B 拿A的输出最为输入，完成50％工作，最后cartridges C完成20%的工作，这样就100%的完成了。</p>
                                    <p style="margin-top: 0px; margin-bottom: 5px; ">在AndroMDA 4中，用户应该能够在从模型到代码的转换中重用已有的cartridges建立blocks 一个cartridge 把输入模型转化为一个或更多的模型或者文本，任何基于元模型的内容，cartridges 建可相互配合、来完成工作。</p>
                                    <p style="margin-top: 0px; margin-bottom: 5px; ">一个典型的例子是：一个用户说：&#8220;行，我最喜欢Hibernate的 cartridge ，但我希望所有生成的实体实现某些接口&#8221;。 这个用户可以编写另一个cartridge 添加了必要的接口生成的实体类。最好的办法来处理，就是用模型到模型转换。<br />
                                    </p>
                                    <h3 style="margin-top: 25px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-weight: bold; font-family: Tahoma, Helvetica, Arial, sans-serif; color: #5aa428; font-size: 1.4em; padding-left: 0px; text-align: left; ">模型到模型转换</h3>
                                    <p style="margin-top: 0px; margin-bottom: 5px; ">这些转化为1..n输入模式到1..m输出模式，每个模型包含在一个元数据储存库。对于转换，我们将使用开放源码框架<a href="http://www.eclipse.org/gmt/atl/" style="text-decoration: none; font-weight: normal; color: #5aa428; ">ATL</a>。然而，AndroMDA不应仅仅依赖于ATL的，但必须能够使用任何模型到模型转换引擎。</p>
                                    <p style="margin-top: 0px; margin-bottom: 5px; ">这里，可配置性也是一个重要方面。转型引擎应该能够访问AndroMDA配置，以便能够转换能够参数化。我们的解决方式是把AndroMDA配置作为一个模式，可以像任何其他模型一样进行转换。因此，AndroMDA必须有一个配置元模型。</p>
                                    <h3 style="margin-top: 25px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-weight: bold; font-family: Tahoma, Helvetica, Arial, sans-serif; color: #5aa428; font-size: 1.4em; padding-left: 0px; text-align: left; ">支持基于构件的开发</h3>
                                    <p style="margin-top: 0px; margin-bottom: 5px; ">模型往往是随着时间的推移逐渐变大。The generator 需要越来越多的时间来验证模型和生成代码。应该可以运行the generator 处理输入模型的部分内容（请注意，在一部分独立元模型上，这是可能的）。在AndroMDA 3中，唯一可能的是，限制只产生UML模型中的包的代码。在AndroMDA 4中，这应该只是一个特例。AndroMDA 4应该能够随心所欲的产生输入模型中部分代码，如：架构的一个切片（MD，怎么切啊）、一个子集，（实在是不会了）a time or one architectural tier at a time or one server at a time or whatever subset of the content of the input model(s)</p>
                                    <p style="margin-top: 0px; margin-bottom: 5px; ">这需要一个配置机制，来增加<u>全局</u>的<u>限制，</u>从而找到那些模型元素需要被转换。</p>
                                    <h2 style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Tahoma, Helvetica, sans-serif; font-size: 12px; font-weight: bold; vertical-align: bottom; color: #5aa428; text-align: left; width: 909px; ">更好的可测性</h2>
                                    <p style="margin-top: 0px; margin-bottom: 5px; ">AndroMDA的每个组件应该很容易testable，as isolated as possible。在设计组件的界限和接口时，我们应该注意，一个组件应尽可能少的依赖其他组件的成功测试（其他组件需要测试通过后才能测试这个组件）。</p>
                                    <h2 style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Tahoma, Helvetica, sans-serif; font-size: 12px; font-weight: bold; vertical-align: bottom; color: #5aa428; text-align: left; width: 909px; ">性能和可伸缩性<br />
                                    </h2>
                                    <p style="margin-top: 0px; margin-bottom: 5px; ">AndroMDA应当有很好的性能和执行成绩，因为用户生成代码的规模和的形式在不断发展（要不产生代码越来越费劲，费时，谁还用啊）。两种可能的方案，以减少执行时间：</p>
                                    <ul>
                                        <li style="margin-bottom: 5px; ">仅生成部分模型（参见上面的CBD）<br />
                                        </li>
                                        <li style="margin-bottom: 5px; ">增量生成，reacting to changes（未来的功能）</li>
                                    </ul>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                        </td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/winderain/aggbug/323427.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/winderain/" target="_blank">winderain</a> 2010-06-12 14:56 <a href="http://www.blogjava.net/winderain/articles/323427.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Axis1.4 在weblogic9.2中报 (401)Unauthorized 的处理</title><link>http://www.blogjava.net/winderain/articles/312438.html</link><dc:creator>winderain</dc:creator><author>winderain</author><pubDate>Tue, 09 Feb 2010 10:01:00 GMT</pubDate><guid>http://www.blogjava.net/winderain/articles/312438.html</guid><wfw:comment>http://www.blogjava.net/winderain/comments/312438.html</wfw:comment><comments>http://www.blogjava.net/winderain/articles/312438.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/winderain/comments/commentRss/312438.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/winderain/services/trackbacks/312438.html</trackback:ping><description><![CDATA[WebService server 在tomcat上部署，client在Weblogic9.2中部署，在使用安全方式调用的时候，报错：<br />
(401)Unauthorized at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:744)<br />
<br />
如果server 和client 都在 tomcat，则不存在问题。<br />
<br />
webService 的 client 代码是有 WDSL2JAVA 自动产生的代码。<br />
<br />
经过多方跟踪，发现在client构造的java.net.URL 实例的 toString() 在tomcat下输出如下：<br />
http://7564945504235898643:123@192.168.0.175:9080/tunnel-web/secure/axis/Plat_UserService<br />
<br />
在weblogic下输出如下：<br />
http://192.168.0.175:9080/tunnel-web/secure/axis/Plat_UserService<br />
<br />
多方查找，也找不到原因。后来通过手工创建call，可以调用，代码如下：<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;wsdlUrl&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">http://192.168.0.175:9080/tunnel-web/secure/axis/BkPlat_UserService?wsdl</span><span style="color: #000000;">"</span><span style="color: #000000;">;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;nameSpaceUri&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">urn:http.service.system.platform.xx.com</span><span style="color: #000000;">"</span><span style="color: #000000;">;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Service&nbsp;service&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Service();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Call&nbsp;call&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(Call)&nbsp;service.createCall();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call.setUsername(</span><span style="color: #000000;">"</span><span style="color: #000000;">7564945504235898643</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call.setPassword(</span><span style="color: #000000;">"</span><span style="color: #000000;">123</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.apache.axis.description.OperationDesc&nbsp;oper;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.apache.axis.description.ParameterDesc&nbsp;param;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oper&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;org.apache.axis.description.OperationDesc();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oper.setName(</span><span style="color: #000000;">"</span><span style="color: #000000;">getUserById</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;param&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;org.apache.axis.description.ParameterDesc(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;javax.xml.namespace.QName(</span><span style="color: #000000;">""</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">userId</span><span style="color: #000000;">"</span><span style="color: #000000;">),&nbsp;org.apache.axis.description.ParameterDesc.IN,&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;javax.xml.namespace.QName(</span><span style="color: #000000;">"</span><span style="color: #000000;">http://www.w3.org/2001/XMLSchema</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">long</span><span style="color: #000000;">"</span><span style="color: #000000;">),&nbsp;</span><span style="color: #0000ff;">long</span><span style="color: #000000;">.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oper.addParameter(param);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oper.setReturnType(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;javax.xml.namespace.QName(</span><span style="color: #000000;">"</span><span style="color: #000000;">http://model.system.platform.xxx.com</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">UserSoap</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oper.setReturnClass(com.xxx.platform.client.system.model.UserSoap.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oper.setReturnQName(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;javax.xml.namespace.QName(</span><span style="color: #000000;">""</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">getUserByIdReturn</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oper.setStyle(org.apache.axis.constants.Style.RPC);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oper.setUse(org.apache.axis.constants.Use.ENCODED);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call.setOperation(oper);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call.setOperationName(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;QName(nameSpaceUri,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">getUserById</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call.setTargetEndpointAddress(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;java.net.URL(wsdlUrl));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java.lang.Object&nbsp;_resp&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;call.invoke(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;java.lang.Object[]&nbsp;{Long.valueOf(</span><span style="color: #000000;">"</span><span style="color: #000000;">7564945504235898643</span><span style="color: #000000;">"</span><span style="color: #000000;">)});<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(_resp&nbsp;</span><span style="color: #0000ff;">instanceof</span><span style="color: #000000;">&nbsp;java.rmi.RemoteException)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">throw</span><span style="color: #000000;">&nbsp;(java.rmi.RemoteException)_resp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;user</span><span style="color: #000000;">=</span><span style="color: #000000;">(com.xxx.platform.client.system.model.UserSoap)&nbsp;_resp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(java.lang.Exception&nbsp;_exception)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;user</span><span style="color: #000000;">=</span><span style="color: #000000;">(com.xxx.platform.client.system.model.UserSoap)&nbsp;org.apache.axis.utils.JavaUtils.convert(_resp,&nbsp;com.xxx.platform.client.system.model.UserSoap.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(org.apache.axis.AxisFault&nbsp;axisFaultException)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">throw</span><span style="color: #000000;">&nbsp;axisFaultException;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">(Exception&nbsp;e){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.warn(</span><span style="color: #000000;">"</span><span style="color: #000000;">test&nbsp;error:</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;e);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
</span></div>
<br />
然后下载axis1.4的源代码，对源代码做中org.apache.axis.wsdl.toJava.JavaStubWriter 类的产生createCall的代码做如下修正：<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;add&nbsp;by&nbsp;winderain</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;org.apache.axis.client.Call&nbsp;setUserInfo(org.apache.axis.client.Call&nbsp;call)&nbsp;throws&nbsp;java.rmi.RemoteException&nbsp;{</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(super.cachedUsername&nbsp;==&nbsp;null){</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(super.cachedEndpoint&nbsp;!=&nbsp;null){</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;userInfo&nbsp;=&nbsp;super.cachedEndpoint.getUserInfo();</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(userInfo&nbsp;==&nbsp;null)&nbsp;return&nbsp;call;</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;str&nbsp;=&nbsp;userInfo.split(\</span><span style="color: #000000;">"</span><span style="color: #000000;">:\</span><span style="color: #000000;">"</span><span style="color: #000000;">);</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(str&nbsp;!=&nbsp;null&nbsp;&amp;&amp;&nbsp;str.length&nbsp;==&nbsp;2){</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;userName&nbsp;=&nbsp;str[0];</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;password&nbsp;=&nbsp;str[1];</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call.setUsername(userName);</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call.setPassword(password);</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call.setUsername(super.cachedUsername);</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(super.cachedPassword&nbsp;!=&nbsp;null)&nbsp;{</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call.setPassword(super.cachedPassword);</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;call;</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;end&nbsp;by&nbsp;winderain</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">""</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;org.apache.axis.client.Call&nbsp;createCall()&nbsp;throws&nbsp;java.rmi.RemoteException&nbsp;{</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.apache.axis.client.Call&nbsp;_call&nbsp;=&nbsp;super._createCall();</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(super.maintainSessionSet)&nbsp;{</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_call.setMaintainSession(super.maintainSession);</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*if&nbsp;(super.cachedUsername&nbsp;!=&nbsp;null)&nbsp;{</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_call.setUsername(super.cachedUsername);</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(super.cachedPassword&nbsp;!=&nbsp;null)&nbsp;{</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_call.setPassword(super.cachedPassword);</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_call&nbsp;=&nbsp;setUserInfo(_call);</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(super.cachedEndpoint&nbsp;!=&nbsp;null)&nbsp;{</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_call.setTargetEndpointAddress(super.cachedEndpoint);</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(super.cachedTimeout&nbsp;!=&nbsp;null)&nbsp;{</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_call.setTimeout(super.cachedTimeout);</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(super.cachedPortName&nbsp;!=&nbsp;null)&nbsp;{</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_call.setPortName(super.cachedPortName);</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java.util.Enumeration&nbsp;keys&nbsp;=&nbsp;super.cachedProperties.keys();</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(keys.hasMoreElements())&nbsp;{</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java.lang.String&nbsp;key&nbsp;=&nbsp;(java.lang.String)&nbsp;keys.nextElement();</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_call.setProperty(key,&nbsp;super.cachedProperties.get(key));</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span></div>
<br />
使得在url中找不到用户信息的时候，通过userInfo中获取用户信息。<br />
<br />
<img src ="http://www.blogjava.net/winderain/aggbug/312438.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/winderain/" target="_blank">winderain</a> 2010-02-09 18:01 <a href="http://www.blogjava.net/winderain/articles/312438.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> Struts2 文件上传 文件类型 大小过滤 不起作用？</title><link>http://www.blogjava.net/winderain/articles/310971.html</link><dc:creator>winderain</dc:creator><author>winderain</author><pubDate>Wed, 27 Jan 2010 08:53:00 GMT</pubDate><guid>http://www.blogjava.net/winderain/articles/310971.html</guid><wfw:comment>http://www.blogjava.net/winderain/comments/310971.html</wfw:comment><comments>http://www.blogjava.net/winderain/articles/310971.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/winderain/comments/commentRss/310971.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/winderain/services/trackbacks/310971.html</trackback:ping><description><![CDATA[<p>使用Struts2上传文件，其实使用的是apache的 commons-fileupload-1.1.jar</p>
<p>在实际使用的过程中，配置了fileUpload拦截器并不能过滤上传的文件类型，只能处理大小过滤</p>
<p><br />
&nbsp;</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">interceptor-ref&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="defaultStack"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;配置允许上传的文件类型，多个用","分隔&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="fileUpload.allowedTypes"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image/bmp,image/png,image/gif,image/jpeg,image/jpg&nbsp;,image/x-png<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;配置允许上传的文件大小，单位字节&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="fileUpload.maximumSize"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">102400</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">interceptor-ref</span><span style="color: #0000ff">&gt;</span></div>
<p>&nbsp;</p>
<p><br />
如果不使用缺省的拦截器，则action中的属性不能正确赋值。而使用后，拦截类型不起作用。后来在网上多方查找，隐隐角色是缺省拦截器的原有。网上说缺省拦截器中已经包含了fileUpload拦截器。那么这样配置就是做了两次拦截。通过查找资料和尝试，如下配置的情况下可以实现文件类型拦截。</p>
<p><br />
&nbsp;</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">interceptor-ref&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="defaultStack"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;配置允许上传的文件类型，多个用","分隔&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="fileUpload.allowedTypes"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image/bmp,image/png,image/gif,image/jpeg,image/jpg&nbsp;,image/x-png,&nbsp;image/pjpeg<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;配置允许上传的文件大小，单位字节&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="fileUpload.maximumSize"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">102400</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">interceptor-ref</span><span style="color: #0000ff">&gt;</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/winderain/aggbug/310971.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/winderain/" target="_blank">winderain</a> 2010-01-27 16:53 <a href="http://www.blogjava.net/winderain/articles/310971.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java中调用 dll 动态库的简洁方法 JNative </title><link>http://www.blogjava.net/winderain/articles/201447.html</link><dc:creator>winderain</dc:creator><author>winderain</author><pubDate>Mon, 19 May 2008 09:45:00 GMT</pubDate><guid>http://www.blogjava.net/winderain/articles/201447.html</guid><wfw:comment>http://www.blogjava.net/winderain/comments/201447.html</wfw:comment><comments>http://www.blogjava.net/winderain/articles/201447.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/winderain/comments/commentRss/201447.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/winderain/services/trackbacks/201447.html</trackback:ping><description><![CDATA[<a href="http://blog.csdn.net/winderain/archive/2008/05/19/2458987.aspx">java中调用 dll 动态库的简洁方法 JNative</a>
<div class="blogstory"><span id="Post.ascx_ViewPost_PreviousAndNextEntriesUp">
<h3></h3>
</span><script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>
<p>&nbsp;&nbsp;&nbsp; Java中调用DLL方法，是通过JNI接口实现的，<a href="http://www.ibm.com/developerworks/cn/java/l-linux-jni/">http://www.ibm.com/developerworks/cn/java/l-linux-jni/</a>&nbsp;这里有详细的说明。大概是先用Java写一个接口类，然后用javah 生成一个xxx.h的c语言的头文件，然后用C实现这个头文件，在这个实现接口中调用其他已经实现的接口。</p>
<p>&nbsp;&nbsp;&nbsp; 我看到这个实现方法后，感觉怪怪的，这不是反过来了么？随后在网上看到了JNative的说明，原来已经有人封装了这些步骤，使用JNative，你可以直接使用了，而不需要写什么接口C文件了。JNative下载后有3个文件，JNative.jar，JNativeCpp.dll以及libJNativeCpp.so，JNativeCpp.dll是用于window系统的；libJNativeCpp.so是用于linux系统的，不过这个文件是glic2.4下编译的。如果需要底版本，需要重新编译。如何编译，在后面介绍。不管什么系统，都需要把DLL文件放到系统路径下或者是加入到搜索目录。</p>
<p>&nbsp; 使用说明：</p>
<p>&nbsp;&nbsp; JAVA中调用比较简单：</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; word-break: break-all; padding-top: 4px; border-bottom: windowtext 0.5pt solid">
<div><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;callDll(String&nbsp;cond)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="_87_994_Open_Image" onclick="this.style.display='none'; document.getElementById('_87_994_Open_Text').style.display='none'; document.getElementById('_87_994_Closed_Image').style.display='inline'; document.getElementById('_87_994_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="_87_994_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_87_994_Closed_Text').style.display='none'; document.getElementById('_87_994_Open_Image').style.display='inline'; document.getElementById('_87_994_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;NativeException,&nbsp;IllegalAccessException&nbsp;</span><span id="_87_994_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span id="_87_994_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;JNative&nbsp;n&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;ret&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;JNative.setLoggingEnabled(</span><span style="color: #0000ff">true</span><span style="color: #000000">);&nbsp;<br />
<img id="_185_599_Open_Image" onclick="this.style.display='none'; document.getElementById('_185_599_Open_Text').style.display='none'; document.getElementById('_185_599_Closed_Image').style.display='inline'; document.getElementById('_185_599_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_185_599_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_185_599_Closed_Text').style.display='none'; document.getElementById('_185_599_Open_Image').style.display='inline'; document.getElementById('_185_599_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span id="_185_599_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span id="_185_599_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;JNative(dllName,&nbsp;methodName);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;常量dllName的值为:windows下不加后缀.dll，linux需要包括后缀.so</span><span style="color: #008000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n.setRetVal(Type.STRING);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;指定返回参数的类型&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n.setParameter(i</span><span style="color: #000000">++</span><span style="color: #000000">,&nbsp;Type.STRING,&nbsp;cond);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n.setParameter(i</span><span style="color: #000000">++</span><span style="color: #000000">,&nbsp;Type.STRING,&nbsp;cond);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n.invoke();&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;调用方法&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;n.getRetVal();&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">取回返回值</span><span style="color: #008000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">this&nbsp;is&nbsp;call&nbsp;dll:</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;ret</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img id="_619_740_Open_Image" onclick="this.style.display='none'; document.getElementById('_619_740_Open_Text').style.display='none'; document.getElementById('_619_740_Closed_Image').style.display='inline'; document.getElementById('_619_740_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_619_740_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_619_740_Closed_Text').style.display='none'; document.getElementById('_619_740_Open_Image').style.display='inline'; document.getElementById('_619_740_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">(Exception&nbsp;e)</span><span id="_619_740_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span id="_619_740_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">cann't&nbsp;call&nbsp;dll:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;dllName&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">.</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">methodName&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="_749_974_Open_Image" onclick="this.style.display='none'; document.getElementById('_749_974_Open_Text').style.display='none'; document.getElementById('_749_974_Closed_Image').style.display='inline'; document.getElementById('_749_974_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_749_974_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_749_974_Closed_Text').style.display='none'; document.getElementById('_749_974_Open_Image').style.display='inline'; document.getElementById('_749_974_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #0000ff">finally</span><span style="color: #000000">&nbsp;</span><span id="_749_974_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span id="_749_974_Open_Text"><span style="color: #000000">{<br />
<img id="_773_968_Open_Image" onclick="this.style.display='none'; document.getElementById('_773_968_Open_Text').style.display='none'; document.getElementById('_773_968_Closed_Image').style.display='inline'; document.getElementById('_773_968_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_773_968_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_773_968_Closed_Text').style.display='none'; document.getElementById('_773_968_Open_Image').style.display='inline'; document.getElementById('_773_968_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(n&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)</span><span id="_773_968_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span id="_773_968_Open_Text"><span style="color: #000000">{<br />
<img id="_787_831_Open_Image" onclick="this.style.display='none'; document.getElementById('_787_831_Open_Text').style.display='none'; document.getElementById('_787_831_Closed_Image').style.display='inline'; document.getElementById('_787_831_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_787_831_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_787_831_Closed_Text').style.display='none'; document.getElementById('_787_831_Open_Image').style.display='inline'; document.getElementById('_787_831_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span id="_787_831_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span id="_787_831_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n.dispose();&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;记得释放</span><span style="color: #008000"><br />
<img id="_850_958_Open_Image" onclick="this.style.display='none'; document.getElementById('_850_958_Open_Text').style.display='none'; document.getElementById('_850_958_Closed_Image').style.display='inline'; document.getElementById('_850_958_Closed_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_850_958_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('_850_958_Closed_Text').style.display='none'; document.getElementById('_850_958_Open_Image').style.display='inline'; document.getElementById('_850_958_Open_Text').style.display='inline';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #0000ff">catch</span><span style="color: #000000">(Exception&nbsp;e)</span><span id="_850_958_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span id="_850_958_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">can't&nbsp;dispose&nbsp;the&nbsp;dll:</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;dllName);<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;ret;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000">&nbsp;&nbsp;</span></div>
</div>
<p>关于linux下编译 C代码部分说明：</p>
<p>对于linux不同版本，可能会导致libJNativeCpp.so不同<br />
原带的libJNativeCpp.so 是在glic2.4下编译的<br />
为了适应glic2.3的情况，重新编译了libJNativeCpp.so，在for gcc3.4.6 glibc 2.3下。<br />
编译办法：<br />
&nbsp;&nbsp; 在JNative-1.3.2-src\JNativeCpp\Release目录下<br />
&nbsp;&nbsp; 1、备份calls.o和 asm_io.o这两个Object文件<br />
&nbsp;&nbsp; 2、make clean<br />
&nbsp;&nbsp; 3、恢复到当前目录calls.o和 asm_io.o这两个Object文件<br />
&nbsp;&nbsp; 4、make<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; 目前已经修改了Release目录下的makefile和subdir.mk文件，使得在make clean的时候不删除calls.o和 asm_io.o两个文件<br />
&nbsp;&nbsp; <br />
附：linux 动态库搜索路径：<br />
&nbsp; export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH</p>
<p>makefile 文件</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; word-break: break-all; padding-top: 4px; border-bottom: windowtext 0.5pt solid">
<div><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">################################################################################<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />#&nbsp;Automatically-generated&nbsp;file.&nbsp;Do&nbsp;not&nbsp;edit!<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />################################################################################<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />-include&nbsp;../makefile.init<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />RM&nbsp;:</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;rm&nbsp;-rf<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />#&nbsp;All&nbsp;of&nbsp;the&nbsp;sources&nbsp;participating&nbsp;in&nbsp;the&nbsp;build&nbsp;are&nbsp;defined&nbsp;here<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />-include&nbsp;sources.mk<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />-include&nbsp;subdir.mk<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />-include&nbsp;objects.mk<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />ifneq&nbsp;($(MAKECMDGOALS)</span><span style="color: #000000">,</span><span style="color: #000000">clean)<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />ifneq&nbsp;($(strip&nbsp;$(C++_DEPS))</span><span style="color: #000000">,</span><span style="color: #000000">)<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />-include&nbsp;$(C++_DEPS)<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />endif<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />ifneq&nbsp;($(strip&nbsp;$(CC_DEPS))</span><span style="color: #000000">,</span><span style="color: #000000">)<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />-include&nbsp;$(CC_DEPS)<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />endif<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />ifneq&nbsp;($(strip&nbsp;$(C_DEPS))</span><span style="color: #000000">,</span><span style="color: #000000">)<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />-include&nbsp;$(C_DEPS)<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />endif<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />ifneq&nbsp;($(strip&nbsp;$(CPP_DEPS))</span><span style="color: #000000">,</span><span style="color: #000000">)<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />-include&nbsp;$(CPP_DEPS)<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />endif<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />ifneq&nbsp;($(strip&nbsp;$(CXX_DEPS))</span><span style="color: #000000">,</span><span style="color: #000000">)<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />-include&nbsp;$(CXX_DEPS)<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />endif<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />ifneq&nbsp;($(strip&nbsp;$(C_UPPER_DEPS))</span><span style="color: #000000">,</span><span style="color: #000000">)<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />-include&nbsp;$(C_UPPER_DEPS)<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />endif<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />endif<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />-include&nbsp;../makefile.defs<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />#&nbsp;Add&nbsp;inputs&nbsp;and&nbsp;outputs&nbsp;from&nbsp;these&nbsp;tool&nbsp;invocations&nbsp;to&nbsp;the&nbsp;build&nbsp;variables&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />#&nbsp;All&nbsp;Target<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />all:&nbsp;libJNativeCpp.so<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />#&nbsp;Tool&nbsp;invocations<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />libJNativeCpp.so:&nbsp;$(OBJS)&nbsp;$(OBJS_ASM)&nbsp;$(USER_OBJS)<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;@echo&nbsp;'Building&nbsp;target:&nbsp;$@'<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;@echo&nbsp;'Invoking:&nbsp;GCC&nbsp;C++&nbsp;Linker'<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;g++&nbsp;-shared&nbsp;-o</span><span style="color: #000000">"</span><span style="color: #000000">libJNativeCpp.so</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;$(OBJS)&nbsp;$(OBJS_ASM)&nbsp;$(USER_OBJS)&nbsp;$(LIBS)<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;@echo&nbsp;'Finished&nbsp;building&nbsp;target:&nbsp;$@'<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;@echo&nbsp;'&nbsp;'<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />#&nbsp;Other&nbsp;Targets<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />clean:<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;-$(RM)&nbsp;$(OBJS)$(C++_DEPS)$(CC_DEPS)$(C_DEPS)$(CPP_DEPS)$(LIBRARIES)$(CXX_DEPS)$(C_UPPER_DEPS)&nbsp;libJNativeCpp.so<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;-@echo&nbsp;'&nbsp;'<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />.PHONY:&nbsp;all&nbsp;clean&nbsp;dependents<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />.SECONDARY:<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />-include&nbsp;../makefile.targets<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /></span></div>
</div>
<p>&nbsp;</p>
<p>subdir.mk 文件</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; word-break: break-all; padding-top: 4px; border-bottom: windowtext 0.5pt solid">
<div><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">################################################################################<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />#&nbsp;Automatically-generated&nbsp;file.&nbsp;Do&nbsp;not&nbsp;edit!<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />################################################################################<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />#&nbsp;Add&nbsp;inputs&nbsp;and&nbsp;outputs&nbsp;from&nbsp;these&nbsp;tool&nbsp;invocations&nbsp;to&nbsp;the&nbsp;build&nbsp;variables&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />C_SRCS&nbsp;+</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />../jni_util.c&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />../mem.c&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />CPP_SRCS&nbsp;+</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />../CallBack.cpp&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />../WindowProcUtil.cpp&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />../org_xvolks_jnative_JNative.cpp&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />ASM_SRCS&nbsp;+</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />../asm_io.asm&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />../calls.asm&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />OBJS&nbsp;+</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />./CallBack.o&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />./WindowProcUtil.o&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />./jni_util.o&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />./mem.o&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />./org_xvolks_jnative_JNative.o&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />OBJS_ASM&nbsp;+</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />./asm_io.o&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />./calls.o<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />C_DEPS&nbsp;+</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />./jni_util.d&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />./mem.d&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />CPP_DEPS&nbsp;+</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />./CallBack.d&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />./WindowProcUtil.d&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />./org_xvolks_jnative_JNative.d&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />#&nbsp;Each&nbsp;subdirectory&nbsp;must&nbsp;supply&nbsp;rules&nbsp;for&nbsp;building&nbsp;sources&nbsp;it&nbsp;contributes<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />%.o:&nbsp;../%.cpp<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;@echo&nbsp;'Building&nbsp;file:&nbsp;$&lt;'<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;@echo&nbsp;'Invoking:&nbsp;GCC&nbsp;C++&nbsp;Compiler'<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;g++&nbsp;-I</span><span style="color: #000000">"</span><span style="color: #000000">/home/gongjan/jdk1.5.0_08/include/</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-I</span><span style="color: #000000">"</span><span style="color: #000000">/home/gongjan/jdk1.5.0_08/include/linux</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-O3&nbsp;-Wall&nbsp;-c&nbsp;-fmessage-length</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">&nbsp;-Wl</span><span style="color: #000000">,</span><span style="color: #000000">--add-stdcall-alias&nbsp;-MMD&nbsp;-MP&nbsp;-MF</span><span style="color: #000000">"</span><span style="color: #000000">$(@:%.o=%.d)</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-MT</span><span style="color: #000000">"</span><span style="color: #000000">$(@:%.o=%.d)</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-o</span><span style="color: #000000">"</span><span style="color: #000000">$@</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">$&lt;</span><span style="color: #000000">"</span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;@echo&nbsp;'Finished&nbsp;building:&nbsp;$&lt;'<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;@echo&nbsp;'&nbsp;'<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />%.o:&nbsp;../%.asm<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;@echo&nbsp;'Building&nbsp;file:&nbsp;$&lt;'<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;@echo&nbsp;'Invoking:&nbsp;GCC&nbsp;Assembler'<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;nasm&nbsp;-f&nbsp;elf&nbsp;-d&nbsp;ELF_TYPE&nbsp;-o</span><span style="color: #000000">"</span><span style="color: #000000">$@</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">$&lt;</span><span style="color: #000000">"</span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;@echo&nbsp;'Finished&nbsp;building:&nbsp;$&lt;'<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;@echo&nbsp;'&nbsp;'<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />%.o:&nbsp;../%.c<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;@echo&nbsp;'Building&nbsp;file:&nbsp;$&lt;'<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;@echo&nbsp;'Invoking:&nbsp;GCC&nbsp;C&nbsp;Compiler'<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;gcc&nbsp;-I</span><span style="color: #000000">"</span><span style="color: #000000">/home/gongjan/jdk1.5.0_08/include/linux</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-I</span><span style="color: #000000">"</span><span style="color: #000000">/home/gongjan/jdk1.5.0_08/include/</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-O3&nbsp;-Wall&nbsp;-c&nbsp;-fmessage-length</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">&nbsp;-Wl</span><span style="color: #000000">,</span><span style="color: #000000">--add-stdcall-alias&nbsp;-MMD&nbsp;-MP&nbsp;-MF</span><span style="color: #000000">"</span><span style="color: #000000">$(@:%.o=%.d)</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-MT</span><span style="color: #000000">"</span><span style="color: #000000">$(@:%.o=%.d)</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-o</span><span style="color: #000000">"</span><span style="color: #000000">$@</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">$&lt;</span><span style="color: #000000">"</span><span style="color: #000000"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;@echo&nbsp;'Finished&nbsp;building:&nbsp;$&lt;'<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;@echo&nbsp;'&nbsp;'<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /></span></div>
</div>
<p class="right articalinfo">&nbsp;</p>
</div>
<img src ="http://www.blogjava.net/winderain/aggbug/201447.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/winderain/" target="_blank">winderain</a> 2008-05-19 17:45 <a href="http://www.blogjava.net/winderain/articles/201447.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ext2 常见界面界面(grid分页、窗口布局、下拉框级联)</title><link>http://www.blogjava.net/winderain/articles/200573.html</link><dc:creator>winderain</dc:creator><author>winderain</author><pubDate>Thu, 15 May 2008 01:55:00 GMT</pubDate><guid>http://www.blogjava.net/winderain/articles/200573.html</guid><wfw:comment>http://www.blogjava.net/winderain/comments/200573.html</wfw:comment><comments>http://www.blogjava.net/winderain/articles/200573.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/winderain/comments/commentRss/200573.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/winderain/services/trackbacks/200573.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 先上图grid分页：&nbsp;&nbsp;&nbsp;&nbsp; 把grid和page工具绑定在一起&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;create&nbsp;the&nbsp;Data&nbsp;Store&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;store&nbsp;=&nbsp;new&nbsp;Ext.data...&nbsp;&nbsp;<a href='http://www.blogjava.net/winderain/articles/200573.html'>阅读全文</a><img src ="http://www.blogjava.net/winderain/aggbug/200573.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/winderain/" target="_blank">winderain</a> 2008-05-15 09:55 <a href="http://www.blogjava.net/winderain/articles/200573.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>