分类目录
文章索引模板
20090114 udpclient rec 10054 - 八月 18, 2009 by yippee

CodeProject: TinyUDP – Simple UDP Client/Server Components for .NET. Free source code and programming help
http://www.codeproject.com/KB/IP/TinyUDP.aspx

C# UdpClient接收消息问题?
http://topic.csdn.net/u/20071226/10/27e8d862-b43a-431b-a44b-adda87d347f3.html

CodeProject: UT2003 Gameserver Status. Free source code and programming help
http://www.codeproject.com/KB/IP/ut2003query.aspx

Strange UDP Socket problem – bytes
http://bytes.com/groups/net-c/237558-strange-udp-socket-problem

Best Udp Client : Udp Client : C# / C Sharp examples (example source code) Organized by topic \\ Network
http://www.demo2s.com/Code/CSharp/Network/BestUdpClient.htm

Best Udp Client – Udp Client
http://www.navioo.com/csharp/source_code/Best_Udp_Client_2178.html

求助:使用UdpClient.Receive方法接收对方回复时,如若对方没有答复,怎么解决Receive方法死等的问题? — 编程爱好者论坛存档帖
http://www.programfan.com/club/showpost.asp?id=13629

UDP Client Problem – bytes
http://bytes.com/groups/net-c/237232-udp-client-problem

UdpClient.BeginReceive gives socket error 10054 – CodeGuru Forums
http://www.codeguru.com/forum/showthread.php?threadid=461370

UdpClient.Receive Method
http://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.receive(VS.71).aspx

C#中判断socket是否已断开的方法 – 人生如酒 – 博客园
http://www.cnblogs.com/JLL/archive/2008/07/28/203090.html#1269706

UDPListener: System.Net.Sockets.SocketException – bytes
http://bytes.com/groups/net-c/475986-udplistener-system-net-sockets-socketexception

CodeGuru Forums – UdpClient.BeginReceive gives socket error 10054
http://www.codeguru.com/forum/printthread.php?t=461370

.NET csharp SocketException question
http://www.eggheadcafe.com/software/aspnet/32686597/socketexception-question.aspx

将对象转为byte[] – 人生如酒 – 博客园
http://www.cnblogs.com/jll/articles/198851.html

How to: Create a Socket Listener
http://msdn.microsoft.com/en-us/library/bb397809.aspx

udp 远程主机强迫关闭了一个现有的连接
http://topic.csdn.net/u/20081122/16/1983a6f6-b008-4e6f-98c1-8d855679adf2.html

c#关于c/s结构 计算上机时间的问题 .NET技术 / C# – CSDN社区 community.csdn.net
http://topic.csdn.net/t/20050822/19/4224232.html

请问 在使用UdpClient接收远程主机发送过来的Udp数据包时: .NET技术 / C# – CSDN社区 community.csdn.net
http://topic.csdn.net/t/20040806/10/3247892.html

为什么使用UdpClient向本机发送数据包会出错? – 微软中文技术论坛(MSDN and TechNet)
http://forums.microsoft.com/china/ShowPost.aspx?PostID=3762050&SiteID=15

udp 远程主机强迫关闭了一个现有的连接
http://topic.csdn.net/u/20081122/16/1983a6f6-b008-4e6f-98c1-8d855679adf2.html?2062577672

大家来看看这段简单的代码有什么问题 .NET技术 / C# – CSDN社区 community.csdn.net
http://topic.csdn.net/t/20060214/18/4555932.html

用UDPClient通信出错,怎么回事呢 .NET技术 / C# – CSDN社区 community.csdn.net
http://topic.csdn.net/t/20060317/12/4620994.html

Best Udp Client : Udp Client « Network « C# / C Sharp
http://www.java2s.com/Code/CSharp/Network/BestUdpClient.htm

An existing connection was forcibly closed by the remote host : .NET Framework Networking and Communication : .NET Development : Microsoft Forums
http://social.microsoft.com/Forums/en-US/netfxnetcom/thread/bcc98596-c9c7-48f1-92ca-021bbe42cbb1

Advanced UDP communications and client side packet loss
http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.framework/2006-01/msg00920.html

microsoft.public.dotnet.languages.csharp: Re: Strange UDP Socket problem
http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.languages.csharp/2004-02/0959.html

UDP Delivers: Take Total Control Of Your Networking With .NET And UDP
http://msdn.microsoft.com/en-us/magazine/cc163648.aspx

"Late Binding" error is killing me! on VB.NET at whitebinder.com – find your answers.
http://www.whitebinder.com/article/1008528/vb-net/late-binding-error-is-killing-me.aspx

标签:, ,
20090415 c# sntp client update - 八月 18, 2009 by yippee

A C# SNTP Client UPDATE

/*
 * A C# SNTP Client
 *
 * Copyright (C)2001-2003 Valer BOCAN <vbocan@dataman.ro>
 * All Rights Reserved

http://www.codeproject.com/KB/IP/ntpclient.aspx
SNTP Client in C#
By Valer BOCAN

Implementation of the Simple Network Time Protocol (RFC 2030) in C#
““““““

SNTP Client
(4,876 Views)

Simple Network Time Protocol Client

Quick Facts

Version: 1.0
Platform: .NET Framework 2.0
Download: Click here to download the latest version.
“““““
http://dotnet-snippets.com/dns/simple-network-time-ntp-protocol-client-SID572.aspx
  Simple Network Time (NTP) Protocol Client

Author: Valer BOCAN
 Programming Language: C#  Rating:
not yet rated
 Views: 3929

 ““““““`

BUG:
// Local clock offset (in milliseconds)
  public int LocalClockOffset
  &leftsign;
   get
   &leftsign;
    TimeSpan span = (ReceiveTimestamp – OriginateTimestamp) – (ReceptionTimestamp – TransmitTimestamp);
    return (int)(span.TotalMilliseconds / 2);
   &rightsign;
  &rightsign;

change:
double

公共过虑的文件模式
*.[Bb][Aa][Kk] *.[Dd][Bb] *.[Ll][Oo][Gg] *.[Mm][Aa][Pp] *.[Tt][Mm][Pp]

delphi 源码提交时需过虑的文件模式
*.~* *.[Dd][Dd][Pp] *.[Dd][Cc][Pp]  *.stat *.tds

vc6 vs2003 vs2005  源码提交时需过虑的文件模式
*.aps *.clw *.ilk *.idb *.ncb *.opt *.obj *.plg *.pch *.pdb *.suo *.user [Dd]ebug [Rr]elease

*.o *.bin *.out *.scc

所有需过虑的文件模式
*.[Bb][Aa][Kk] *.[Dd][Bb] *.[Ll][Oo][Gg] *.[Mm][Aa][Pp] *.[Tt][Mm][Pp] *.~* *.[Dd][Dd][Pp] *.[Dd][Cc][Pp]  *.stat *.tds *.aps *.clw *.ilk *.idb *.ncb *.opt *.obj *.plg *.pch *.pdb *.suo *.user [Dd]ebug [Rr]elease *.fblz *.o *.bin *.out *.scc

标签:, , ,
20080809 c# autoupdate clickonce 2 - 四月 3, 2009 by yippee

20080809 c# autoupdate clickonce
http://www.yippeesoft.com

CodeProject: Graphic in XAML and WPF. Free source code and programming help
http://www.codeproject.com/KB/WPF/GraphicInXAMLAndWPF.aspx

不用ClickOnce,做我们个性的自动更新功能 – 我的程序我做主 – 博客园
http://www.cnblogs.com/xjwang/archive/2007/06/28/799147.html

转别人的用C#实现软件自动更新思路_快乐D小孩
http://hi.baidu.com/happybadbaby/blog/item/6e22e9e94cba673ab80e2d90.html

用C# 实现C/S模式下软件自动在线升级[转载,原作者:貓撲] – 程序生产车间 – 博客园
http://www.cnblogs.com/chinaprg/archive/2007/07/10/811912.html

可复用的自动升级系统实现 – cdo – 博客园
http://www.cnblogs.com/cdo/archive/2005/09/06/231229.html

C#自动更新程序及源码原创 – hi – 博客园
http://www.cnblogs.com/trenhui/archive/2008/07/09/1230387.html

自动更新程序源码下载(C#.Net) – jenry-云飞扬 – 博客园
http://www.cnblogs.com/jenry/archive/2006/08/15/477302.aspx

CodeProject: Using Updater Block. Free source code and programming help
http://www.codeproject.com/KB/cs/vanillaupdaterblock.aspx

C# 实现在线软件自动升级程序_龙腾教程网
http://www.longtengwang.com/Article/soft/Csharp/csharpSL/200801/8014.html

.NET后台智能传输服务实现自动更新 – 好心情,就会使工作更有效率 – 博客园
http://www.cnblogs.com/sunjie9606/archive/2008/04/20/1082301.html

WinForm App自动更新(Live Update)架构 @阿良.NET
http://www.chenjiliang.com/Article/View.aspx?ArticleID=7580&TypeID=79

JavaScript与C# Windows应用程序交互 @阿良.NET
http://www.chenjiliang.com/Article/View.aspx?ArticleID=8236&TypeID=79

[转载]利用Web Services实现软件自动升级 – 尹学渊的共享空间 – Love Dot NET – 博客园
http://www.cnblogs.com/erwin/archive/2008/01/28/1056013.html

[转载]在WinForm中使用Web Services 来实现 软件 自动升级( Auto Update ) (C#) – 尹学渊的共享空间 – Love Dot NET – 博客园
http://www.cnblogs.com/erwin/archive/2008/01/28/1056103.html

[笔记]使用 .NET 和后台智能传输服务 API 来编写自动更新应用程序 – 尹学渊的共享空间 – Love Dot NET – 博客园
http://www.cnblogs.com/erwin/archive/2008/01/28/1056144.html

在C#中实现软件自动升级的解决方案 – 董世军的Blog – DonewsBlog
http://blog.donews.com/dongshijun/archive/2007/09/24/1213207.aspx

尹学渊的共享空间 – Love Dot NET – 博客园
http://erwin.cnblogs.com/

C#实现软件自动升级 – whatodo – 网易博客
http://blog.163.com/qiqinghai_2/blog/static/5928669200710238846197/

标签:, , , ,

20080809 clickonce autoupdate c# - 四月 1, 2009 by yippee

20080809 clickonce autoupdate c#
http://www.yippeesoft.com

转别人的用C#实现软件自动更新思路_快乐D小孩
http://hi.baidu.com/happybadbaby/blog/item/6e22e9e94cba673ab80e2d90.html

转别人的用C#实现软件自动更新思路_快乐D小孩
http://hi.baidu.com/happybadbaby/blog/item/6e22e9e94cba673ab80e2d90.html

C#中使用ClickOnce技术实现系统的部署和升级 – leon – 网易博客
http://blog.163.com/leon3000@126/blog/static/40953693200846114222150/
ClickOnce

如何:发布 ClickOnce 应用程序
http://msdn.microsoft.com/zh-cn/vstudio/31kztyey.aspx

CodeProject: Download Manager for update Application. Free source code and programming help
http://www.codeproject.com/KB/vb/Download_version_Manager.aspx

CodeProject: Adding automatic updates to your program – Part 1. Free source code and programming help
file:///I:/ScrapBook/data/20080804180625/index.html

CodeProject: ClickOnce Button Server Control. Free source code and programming help
http://www.codeproject.com/KB/custom-controls/ClickOnce_Button_Control.aspx

CodeProject: Publish an application using ClickOnce, without VS 2005. Free source code and programming help
http://www.codeproject.com/KB/dotnet/Mage_UI_Utility.aspx

CodeProject: Downloading updates in Windows Form application. Free source code and programming help
http://www.codeproject.com/KB/IP/ApplicationUpdate.aspx

CodeProject: Application Auto Update Revisited. Free source code and programming help
http://www.codeproject.com/KB/vb/Auto_Update_Revisited.aspx

CodeProject: Adding automatic updates to your program – Part 1. Free source code and programming help
http://www.codeproject.com/KB/install/DDayUpdate_Part1.aspx

DDay.Update
http://www.ddaysoftware.com/Pages/Projects/DDay.Update/Default.aspx

2005中ClickOnce实现程序的自动升级功能。 – Bear.sTaR&leftsign;R&rightsign; – 博客园
http://www.cnblogs.com/BearsTaR/archive/2006/06/05/ClickOnce.html

使用clickone部署vs2005中的winform应用程序(转载) – szg3827的专栏 – CSDNBlog
http://blog.csdn.net/szg3827/archive/2008/03/23/2211202.aspx

Clickonce部署初体验(ZT) – 汶川大地震:愿生者得救,逝者安息! – 博客园
http://www.cnblogs.com/chinhr/archive/2007/06/18/787253.html

[转]ClickOnce – Just Tiger – 博客园
http://zitiger.cnblogs.com/archive/2005/08/03/207001.html

ClickOnce使用体会 – 今日红缨在手 – 博客园
http://www.cnblogs.com/dajianshi/archive/2008/05/22/877065.html

在ClickOnce应用程序中创建桌面快捷方式 – teamleader – 博客园
http://www.cnblogs.com/teamleader/archive/2008/05/12/1193466.html

How to: Check for Application Updates Programmatically Using the ClickOnce Deployment API
http://msdn.microsoft.com/en-us/library/ms404263(VS.80).aspx

ClickOnce Sample
http://msdn.microsoft.com/en-us/library/01f4d4fc(VS.80).aspx

TopXML : Simple Auto Update for WPF Apps, without the Updater Block, in XML
http://www.topxml.com/rbnews/XML/re-85952_Simple-Auto-Update-for-WPF-Apps-without-the-Updater-Block.aspx

WPF Localization Extension – Home
http://www.codeplex.com/WPFLocalizeExtension
LocalizeExtension

求C#自动更新组件代码(在线)(急用) .NET技术 / C# – CSDN社区 community.csdn.net
http://topic.csdn.net/t/20041129/10/3597212.html

实现.net应用程式的自动更新 _asp.net技巧-NET编程-技术资讯-华夏名网资讯中心 虚拟主机,域名注册,双线虚拟主机,服务器租赁,为7万用户提供服务
http://www.sudu.cn/info/html/edu/net/20071224/12802.html

自动更新 – 高海东的专栏 – CSDNBlog
http://blog.csdn.net/gaohaidong/archive/2005/03/16/321231.aspx

实现.NET应用程序的自动更新 – 中国站长站
http://www.chinaz.com/Program/.NET/0222232R2008.html

自动更新程序源码下载(C#.Net) – jenry-云飞扬 – 博客园
http://www.cnblogs.com/jenry/archive/2008/04/24/477302.html

Deploying a WPF Application (WPF)
http://msdn.microsoft.com/en-us/library/aa969776.aspx

ClickOnce Deployment
http://msdn.microsoft.com/en-us/library/t71a733d.aspx

Deploying a Windows Presentation Foundation Application
http://msdn.microsoft.com/en-us/library/aa969776(VS.85).aspx

ClickOnce and XBAPs
http://209.85.175.104/u/loyolachicago?q=cache:h9ce4wjCLGcJ:guysmithferrier.com/downloads/COXBAPs.pdf+Deploying+WPF+App+Using+ClickOnce+and+VS&hl=en&ct=clnk&cd=9

Wikipedia Explorer, WPF and ClickOnce
http://www.guysmithferrier.com/post/2007/02/Wikipedia-Explorer2c-WPF-and-ClickOnce.aspx

Download details: Updater Application Block
http://www.microsoft.com/downloads/details.aspx?FamilyId=C6C17F3A-D957-4B17-9B97-296FB4927C30&displaylang=en
Updater Application Block

ClickOnce
http://msdn.microsoft.com/en-us/netframework/aa497348.aspx

程湘之間: Updater Application Block 與 ClickOnce
http://bccharles.spaces.live.com/blog/cns!2c5e488dee8c116e!192.entry

Updater Application Block (翻译+总结) – 水-生命之源 – 博客园
http://www.cnblogs.com/water.xing/articles/119175.html

求个c#桌面程序的自动更新程序 – C# 论坛 – 编程论坛
http://bbs.bc-cn.net/thread-200825-1-1.html

Automatic Updates – Releases
http://www.codeplex.com/AutomaticUpdates/Release/ProjectReleases.aspx

Creating Self-Updating Applications With the .NET Compact Framework
http://msdn.microsoft.com/en-us/library/aa446487.aspx

Automatic Updates and WindowsUpdate Reset tool – Release: AU Client and WindowsUpdate Reset Tool (v77c)
http://www.codeplex.com/aureset/Release/ProjectReleases.aspx?ReleaseId=13656

Update Controls .NET – Home
http://www.codeplex.com/updatecontrols

Rent A Coder – Making C# Application Auto Update
http://www.rentacoder.com/RentACoder/misc/BidRequests/ShowBidRequest.asp?lngBidRequestId=793568

Auto update of program (Downloading from web) – C# – Forums at ProgrammersHeaven.com
http://www.programmersheaven.com/mb/csharp/373030/373030/ReadMessage.aspx

单机搭建WinCE开发环境 – 何建邦的BLOG – 博客园
http://www.cnblogs.com/we-hjb/archive/2008/07/30/1256838.html

急!急!求VB.NET2003,C/S程序自动升级源代码,要能使用!!!! .NET技术 / VB.NET – CSDN社区 community.csdn.net
http://topic.csdn.net/t/20061212/11/5224135.html

VS2005中使用ClickOnce 部署应用程序的升级 – szg3827的专栏 – CSDNBlog
http://blog.csdn.net/szg3827/archive/2008/03/24/2211234.aspx

使用VS2005的 ClickOnce 技术实现按需下载组件。_思海
http://hi.baidu.com/twmp/blog/item/65affc0045c9d784e950cdb1.html

ClickOnce部署概述 – 一路前行 – 博客园
http://www.cnblogs.com/zhangpengshou/archive/2008/05/23/1206090.html

Application Auto-Update Question : Windows Presentation Foundation (WPF) : .NET Development : MSDN Forums
http://forums.msdn.microsoft.com/en-US/wpf/thread/d8ee7275-4801-4a34-8254-e8d381ca1a6a

Auto update of program (Downloading from web), C# Language, C#,VB.NET,XAML,.NET
http://www.c-sharpcorner.com/Forums/ShowMessages.aspx?ThreadID=43683

Auto Update of a ListView from a DataSet : Windows Presentation Foundation (WPF) : .NET Development : MSDN Forums
http://forums.msdn.microsoft.com/en-US/wpf/thread/279f036a-486b-492b-9223-1d7dcfcf570b/

Lester\’s WPF blog
http://blogs.msdn.com/llobo/

Windows Presentation Foundation 主机 (PresentationHost.exe)
http://msdn.microsoft.com/zh-cn/aa970051.aspx
esentationHost.exe example.xbap

Windows Presentation Foundation Security
http://technet.microsoft.com/zh-cn/aa970906(VS.85).aspx#InternetExplorerSecuritySettings

应用与视窗
http://cache.baidu.com/c?m=9d78d513d98101f819bac8385e508c3b450edd227ac0d16568d4e45f92140c0b1072a4fb792d4a4295876b6672b2540ab7b56a2c6a5076a09bbfd7118cfbcf6972dc6123706bd71c4dce4ff28e1a7b9c73c647e2b21afabded3990a9d1838c5005dd53737ed1f18e4d0062cc3ff44726e3d0c91f415907ba9b6731ac09752b9c7540bd47f2fd41046583f5dd5c5bc45e903642c1b835c77c44e1&p=91769a44a4934eac42a4db6456&user=baidu#baidusnap0

Windows Presentation Foundation Host (PresentationHost.exe)
http://technet.microsoft.com/zh-cn/aa970051(VS.85).aspx

Draggable window or datagrid : The Official Microsoft Silverlight Site
http://silverlight.net/forums/p/12467/41324.aspx#41324

Building Photo Uploaders with XAML &line; dev.aol.com &line; The AOL Developer Network
http://dev.aol.com/building_photo_uploaders_with_xaml

Visual Studio 2008 Tip: Open XAML Files Faster « Karl On WPF – .Net
http://privacywant.info/index.php?hl=f5&q=uggc%3A%2F%2Fxneyfuvssyrgg.jbeqcerff.pbz%2F2008%2F02%2F04%2Fivfhny-fghqvb-2008-gvc-bcra-knzy-svyrf-snfgre%2F

.NET csharp Setting local namespace in xaml file
http://www.eggheadcafe.com/software/aspnet/32478868/setting-local-namespace-i.aspx

如何:配置 IIS 5.0 和 IIS 6.0 以部署 WPF 应用程序
http://msdn.microsoft.com/zh-cn/ms752346.aspx

部署 WPF 应用程序 (WPF)
http://msdn.microsoft.com/zh-cn/vcsharp/aa969776.aspx
仅标记 XAML 页

用WPF构建强大的用户体验 – XAML浏览器应用程序-微软开发专栏-WPF-天极网
http://dev.yesky.com/msdn/255/2665755_4.shtml

Windows Presentation Foundation 简介
http://msdn.microsoft.com/zh-cn/library/aa970268.aspx#WPF_Best_Practices

Windows Presentation Foundation XAML 浏览器应用程序概述
http://msdn.microsoft.com/zh-cn/aa970060.aspx

如何:使用 XCopy 进行部署
http://msdn.microsoft.com/zh-cn/vcsharp/ms235291.aspx

.NET 3.0 框架介绍 – oec2003的学习专栏 – 博客园
http://www.cnblogs.com/oec2003/archive/2007/08/10/850866.html

标签:, , , ,
20080713 Oracle Instant Client - 二月 24, 2009 by yippee

20080713 Oracle Instant Client
http://www.yippeesoft.com

http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html
Installation Steps:

1. Download the appropriate Instant Client packages for your platform. All installations REQUIRE the Basic package.

2. Unzip the packages into a single directory such as "instantclient".
3. Set the library loading path in your environment to the directory in Step 2 ("instantclient"). On many UNIX platforms, LD_LIBRARY_PATH is the appropriate environment variable. On Windows, PATH should be used.

4. Start your application and enjoy.

但是仍然失败

参考资料:
使用PL/SQL Developer连接oracle出现TNS:12154,Why?
我的电脑装了Oracle 的Suite,我在察看PLSQL Developer的Help—-Support Info—TNS Names时发现PLSQL Developer 默认使用的是Oracle的Develop软件产品的tnsnames.ora,于是我将Oralce DB的tnsnames.ora复制过来覆盖掉这个tnsnames.ora.问题就OK了。
其实这个问题我之前也出现过,不过那时是出现在Oracle developer 的相关产品连接Oracle DB时。所以我个人认为,如果出现Oracle DB可以连接上,而第三方开发软件连接不上时,就应该考虑其相关的tnsnames.ora是否设置正确。

上下文:机器上安装了一个Oracle817服务器,但是都是最小安装,然后想通过这台机器的SqlPlus连接其他机器的Oracle8i服务器
现象:通过Net8 Assistant可以测试通过,但是使用SqlPlus则不行,报ORA-12154的错误
解决方式:检查$Oracle_Home\\network\\admin\\tnsname.ora文件,看看配置的TNS在不在
检查$Oracle_Home\\network\\admin\\sqlnet.ora,看看NAMES.DIRECTORY_PATH这个常量的值。需要设置为:NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
然后就打开SqlPlus就Ok了
原因:估计是NAMES.DIRECTORY_PATH常量是查询服务的方式。我没有修改这个之前NAMES.DIRECTORY_PATH= (HOSTNAME)是这个样子的,所以可能他仅仅查询本机器的服务。加上TNSAMES 可能就是增加解析TNS的功能。

http://blog.csdn.net/pengpenglin/archive/2007/09/27/1802626.aspx
原创 Oracle ORA-12154: TNS:could not resolve service name错误的解决方法

http://www.oracle.com.cn/archiver/?tid-87874.html
ORA-12154:TNS: could not resolver the connect identifier specified

是连接远程的oracle吧?
需要现在oracle中配置这个连接.
oracle\\ora92\\network\\admin下的tnsnames.ora中添加:
_tech=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 202.113.13.84)(PORT = 1521))
)
(CONNECT_DATA =
(SID = tech)
(SERVER = DEDICATED)
)
)

http://hi.baidu.com/washingtontju/blog/item/e484fad325d820dca8ec9a31.html
cle 10g绿色客户端 plus PL/SQL Developer-搭建方便的Oracle客户端使用环境

PL/SQL Developer是一个非常方便Oracle数据库的PL/SQL的程序编写与调试程序!Oracle数据库的功能很强大,而且对于每个细小的环节都可以控制。但是如果想用SQL*PLUS来操作的话,您就非得是高手中的高手不可了。尽管是高手,可能也要花很多的时间,我在此向您推荐一条系统管理的捷径 PL/SQL Developer,确实是管理Oracle系统管理与使用的好帮,不愧ORACLE公司内部的人员都在使用它,而不再去开发SQL*PLUS。并且它的扩展PLUG-INS功能真叫绝妙。

文件夹权限可以不用管。 
  
  设置ORACLE_HOME变量的方法如下 
  
  控制面板>>系统>>高级>>环境变量>>系统变量>>新建系统变量 
  
  变量名写ORACLE_HOME 
  变量值添实际的ORACLE_HOME路径,在注册表中有

  http://hi.baidu.com/bxzh/blog/item/2dd76ad66ca6c22a06088b58.html
  免安装Oracle运行pl/sql developer

  运行PL/SQL Developer报“oci.dll找不到模块”
  环境变量中设置ORACLE_HOME
并将%ORACLE_HOME%\\bin加入path

http://dragon7557.itpub.net/post/3579/266274
Oracle Instant client介紹及試用手記

http://blog.csdn.net/oseica/archive/2007/02/08/1505409.aspx
oracle 10g 客户端安装

无法加载oci.dll等错误的解决方法
问题现象:net在windows2003下访问oracle9i提示“无法加载oci.dll”或 "无法在dll   oci.dll中找到名为ocienvcreate的入口点   "的修复方法
开发环境:Windows2003,Visual   Studio   .net   2003,Oracle   Client   9i。
原因:这是由于ASP   .Net没有权限访问oracle的安装目录造成的。

修复方法:
1:找到oracle客户端的安装目录,例如:E:\\oracle\\ora92,选中目录,在“属性–安全”里面删掉“ASP   .NET、Users用户”然后再添加进去,并赋予“完全控制或者修改权限”;将everyone赋予“完全控制或者修改权限”,注意:网站的目录权限也要设置为ervryone完全访问,不然oracle好了,网站同样访问不了.重新启动。
2:最简单直接的方法是启用ASP   .Net用户模拟,在web.config的 <system.web> </system.web> 配置节中增加: <identity   impersonate= "true "   userName= "USER "   password= "PASSWORD "/>
如: <identity   impersonate= "true "   userName= "administrator "   password= "123456 "> </identity>

http://www.30wan.com/articleview/2008-5-7/article_view_12418.htm
安装oracle10G即时客户端instantclient时msvcr71.dll缺失问题解决-zmxj的专栏

http://hi.baidu.com/dcf1209/blog/item/654546ca828afa83c91768c6.html
不安装Oracle使用PlSqlDeveloper

http://www.mydatabasesupport.com/oracle-instant-client-ease-your-client-deployment.html
Oracle Instant Client : Ease your client deployment

http://allblue.mllm.org/node/228
  
PL/SQL Developer和Oracle Instant Client

http://dev.csdn.net/article/58/58861.shtm
Installing PHP and the Oracle 10g Instant Client for Linux and Windows

http://robinlu7.spaces.live.com/blog/cns!4CD02310774241DE!196.entry
Oracle客户端免注册安装的使用方法(纯绿色方式)

http://hi.baidu.com/washingtontju/blog/item/e484fad325d820dca8ec9a31.html
Oracle 10g绿色客户端 plus PL/SQL Developer-搭建方便的Oracle客户端使用环境

http://expert.blog.51cto.com/339473/70969
重磅推出:Oracle客户端精简绿色版

http://hi.baidu.com/zbzb/blog/item/19d5e2dd973a10eb77c63874.html
绿色版Oracle客户端下载

标签:, ,

20080421 Eclipse hibernate spring Tapestry 1 - 一月 12, 2009 by yippee

20080421 Eclipse hibernate spring Tapestry 1
http://www.yippeesoft.com

Driver class not found oracle thin No driver name specified

问题:
在myEclipse的“Datasource Explorer”视图中,右键->“Hibernate Reverse Engineering”,创建对

象关系映射文件时,最后一步提示“在“generating artifacts”期间发生了内部错误”;

解决:
这个问题折腾了我近两天,查了好多资料,最后总结出可能有两种原因,对应有两种解决方法。
原因1:是MyEclipse4.1GA本身的BUG;
解决1:升级到myEclipse最新版本即可;

原因2:是oracle驱动不匹配的问题,class12.jar for jdk1.1 and jdk1.2;jdk1.4以上应该用     

ojdbc1.4.jar;
解决2:
第一步:在工程中的lib中添加包ojdbc1.4.jar,并确认ojdbc1.4.jar自动加入了.classpath中;
第二步:在myEclipse的“Datasource Explorer”视图中配置oracle连接中,指定驱动类为ojdbc1.4.jar

jdbc:oracle:thin:@127.0.0.1:1521:orcl

在Eclipse下生成jar文件是非常简单的:

1.在要生成jar的项目上右击,选择菜单上的Export(导出)

2.导出类型选择Jar File

3.选择或者输入生成路径

 4.manifest文件是默认生成的,你还可以选择把生成后的文件保存到指定路径

程序的切入点点击“浏览”Eclipse会自动检测可以切入的类,选择你要作为切入点的类就行了

(下面这个是本人的示范程序的选项,自动生成manifest文件,并保存到workspace的Triangle文件夹里,文件名为manifest,切入点为clsTriangle)

(生成的jar文件)

 5.运行jar文件,在命令行下输入:

java -jar e:\\myTriangle.jar

运行成功,如图:

很多朋友在生成jar文件后,执行时只是简单的输入

java JAR_File_Path

这样是无法执行该jar文件的,需要加入参数 -jar 才可以。

广行无部伍行陈,就善水草屯,舍止,人人自便,不击刀斗以自韂,莫府省约文书籍事,然亦远斥候,未尝遇害。程不识正部曲行伍营陈,击刀斗,士吏治军簿至明,军不得休息,然亦未尝遇害。
效伯高不得,犹为谨敕之士,所谓刻鹄不成尚类鹜者也;效季良不得,陷为天下轻薄子,所谓画虎不成反类狗者也。

选择tapestry有如下几大优点:
1、最彻底的MVC开发框架,页面代码全部由HTML标准标签组成,页面美工人员无须了解特别的标签定义。
2、可重用组件开发节省开发资源,一句话:越开发越轻松
3、优秀的页面流转开发。传统方式都是基于URL实现激活页面流转,而tapstry除了此方式,你还可象开发普通java类一样实现page页面流,更
重要的是,还可由此实现页面类的复用。
4、丰富的组件资源。除了官方维护的资源外,还可找到一大堆的tapestry组件库。
5、超强的扩展性。tapestry是一个真正的开放性架构,说白了,你觉得哪个服务不爽,你就可写个替代它。
6、生命力超强,不断的自我更新、发展。tapestry4.0与3.0相比简直就是另一个飞跃,如支持jdk1.5的Annotations,仅这点开源产品中目前
还只看到一个hibernate;支持portlet JSR-168,又一个顺应潮流的web开发支持。规划中的4.1将支持页面静态化,这不正是众多开发人员的
另个期待吗?
7、tapestry的开发人员稳定。不是一个两个人在那里单打独斗,而是有一群人在开发和支持tapestry的进程。
8、tapestry技术成熟吗?基于tapestry的软件和大网站已经很多了,

Tapestry的缺点

1.页面的控制复杂。一个Tapestry页面需要三个文件来定义,改动到组件参数的时候往往需要修改三个文件的相关代码,经常会发生遗漏。

2.HTML文件的视图显示问题,由于加入了Tapestry的组件及属性,一般的HTML编辑器的所见即所得功能就丧失了,虽然你也可以写所谓的“mockup”(即只为显示所用的HTML代码),但过于麻烦实际上作用不大。

3.属性的persistent机制问题。该机制是把变量放在内存中以便后续使用。但如果在退出页面时没有清空这些属性值,下次(未重启服务)再进入该页面时这些属性的值还会存在,同时占用了内存。

http://blog.donews.com/sunbeam/articles/113875.aspx
安装Tapestry

applicationContext-hibernate.xml hibernate.properties

http://news.newhua.com/news1/programming/2007/1224/0712241114300076DI8K0689E7H2DG16.html
MyEclipse配置struts+hibernate+spring

http://dev.csdn.net/article/74902.shtm
hibernate+spring     选择自 f9inux 的 Blog

http://blog.sina.com.cn/s/blog_5016113a01008uvp.html
《spring2.0宝典》学习笔记8整合Hibernate执行持久化操作

http://jbbs.31010.cn/archiver/?tid-323.html
三个JAVA文件完成jsf+spring+hibernate的集成.

http://www.uml.org.cn/j2ee/2006110222.htm
一步一步开发Spring Framework MVC应用程序一步一步开发Spring Framework MVC应用程序

一个dwr+spring+hibernate的示例
http://fangang.javaeye.com/blog/120768

http://www.360doc.com/showWeb/0/0/173772.aspx
整合hibernate和spring这样的文章已经很多了,下面我们来看看如何利用myeclipse的功能为整合提速咯

http://www.blogjava.net/shmily432685/archive/2007/07/10/18233.html
Myeclipse平台struts+hibernate+spring项目开发示例

http://blog.csdn.net/fuliangliang/archive/2007/09/24/1798037.aspx
Spring+hibernate+DWR整合

http://www.xuancheng.org/viewthread.php?tid=144362
Spring+hibernate+DWR整合(讲的不错)

http://13480.blog.163.com/blog/static/1628551420075263357557/
HibernateDaoSupport的使用

http://hi.baidu.com/lxs30/blog/item/3f116cd5af0debc750da4b2f.html
HibernateTemplate and HibernateDaoSupport

如何在MyEclipse快速搭建Hibernate应用
http://it.21cn.com/software/jdjc/2007/12/26/4072591.shtml

http://www.boogu.com/caiContent_6354.html
Tapestry+spring+hibernate基本架构

标签:, , , ,

20080410 java JadClipse eclipse - 一月 3, 2009 by yippee

20080410 java JadClipse eclipse
http://www.yippeesoft.com

在使用Java编写复杂一些的程序时,你会不会常常对一层层的继承关系和一次次方法的调用感到迷惘呢?幸亏我们有了Eclipse这么好的IDE可以帮我们理清头绪--这就要使用Eclipse强大的代码追踪功能。

1、用Open Declaration可以查看类、方法和变量的声明。这是最常用的一个功能了,如果在要追踪的对象上点右键,选择Open Declaration,可以跳转到其声明的地方。这个功能有个快捷键是F3,当然你也可以按住Ctrl键,鼠标移过去会变成一个小手,单击就可以了。

2、用Open Type Hierarchy可以查看类的继承关系,可以在Hierarchy窗口看到继承层次的导航。在方法或类名上点击右键,选择Open Type Hierarchy即可,快捷键是F4。

3、 用Open Call Hierarchy可以查看方法的调用层次。如果想知道一个方法在别的什么地方被调用了,这个功能就很好用了,实际中也很常用,比如要重构一个方法时,想知道他对其它什么地方可能有影响,就可以用这个功能。在方法名上点击右键,选择Open Type Hierarchy即可,快捷键是Ctrl+Alt+H。可以在Call Hierarchy窗口看到方法的调用层次的导航。

4、用Open Super Implemention可以查看当前方法在父类中的实现或接口中的声明(前提是该方法是对父类或接口中相应方法的重写),在方法名上点击右键,选择Open Super Implemention即可。

5、最后介绍一个超级好用的功能,叫Open Implemention,就是可以跳转到某个调用的方法的具体实现的地方去。为什么说这个是超级好用呢?用过Spring的人都知道,现在都提倡面向接口编程,所以,如果使用Open Declaration来追踪一个方法的调用的话,只会看到该方法在接口中的声明,而看不该方法在具体类中的实现,当然,可以使用Call Hierarchy先得到该方法的整个的调用层次,然后再导航到具体的实现处,但操作有些麻烦了。有了Open Implemention,就可以直接看到实现的代码了,在方法名上点击右键,选择Open Implemention就可以了

Ctrl+T 可以方便的在接口和类之间跳转

Content-Length比如“宋体”,它的GB2312编码生成字节序列 0xcb,0xce,0xcc,0xe5,

http://www.kpdus.com/jad.html#download
Jad – the fast JAva Decompiler

http://jadclipse.sourceforge.net/wiki/index.php/Main_Page
JadClipse is a plug-in that seamlessly integrates Jad (the fast Java decompiler) with Eclipse.

Normally, when opening a class file the Class File Viewer will show a brief API outline of the class. If you install this plug-in, however, the Class File Viewer will be replaced with the JadClipse Class File Viewer that shows the decompiled source of the class. This task is accomplished by decompiling the corresponding class file in the background using Jad. Normal Java syntax highlighting as well as the Outline View are supported.

jadclips插件网站:http://jadclipse.sourceforge.net/
一、下载:
下载插件:
下载jadclipse_3.1.0.jar版本,该版本支持eclipse3.1M6以上
下载jadclipse_3.2.0.jar版本,该版本支持eclipse3.2M3和eclipse3.2M4。
下载jadclipse_3.2.2.jar版本,该版本支持eclipse3.2M5以上。
下载Jad反编译工具:
http://www.kpdus.com/jad.html#download,在该页中找到适合自己操作系统平台的jad下载。下载后解压,然后将解压后的jad.exe文件复制到%JAVA_HOME%\\BIN目录下面(可以将jad.exe随便放到哪,只要记住路径就好,下面要用到)。
二、安装:
方法1、直接将jadclipse_3.1.0.jar复制到%ECLIPSE_HOME%\\plugins目录下。
方法2、使用link方式安装,建立E:\\eclipse3.1plugins\\jadclipse3.1.0\\eclipse\\plugins的目录结构,将jadclipse_3.1.0.jar放到plugins目录下面(注:其中E:\\eclipse3.1plugins为你自己定义的一个专门放置插件的目录)。再在%ECLIPSE_HOME%\\links目录下面建立一个jadclipse3.1.0.link文件(该文件名随便取,保证后缀为.link就OK).文件里面内容为:path=E:\\\\eclipse3.1plugins\\\\jadclipse3.1.0。
启动eclipse,打开Window->Preferences->Java->JadClipse,如果没有找到 JadClipse,检查插件安装的版本是否与你安装的eclipse版本对应。我安装的eclipse是:eclipse3.1.2
三、设置参数:
启动eclipse,打开:Window->Preferences->Java->JadClipse。
1、Path to decompiler,这里设置反编译工具jad的全路径名,比如:%JAVA_HOME%\\bin\\jad.exe。
2、Directory for temporary files,这里设置临时文件路径。
至于Window->Preferences->Java->JadClipse目录下的Debug,Directives,Formatting,Misc目录中的参数设置,就不罗嗦。
四、 安装完成后,eclipse自动将JadClipse Class File Viewer设置成class文件的缺省打开方式。如果没有默认,可以在Eclipse的Windows–> Perference–>General->Editors->File Associations中修改“*.class”默认关联的编辑器为“JadClipse Class File Viewer”。设置完成后,双击*.class文件,eclipse将自动反编译

标签:, ,

20080410 Eclipse java 开发 1 - 一月 2, 2009 by yippee

20080410 Eclipse java 开发 1
http://www.yippeesoft.com

先进入cmd并进入到文件所在目录
输入dir /a-d /b *.mp3>1.txt
这样将这个目录下的所有文件都导入到了1.txt文件中
其中可能有我们不需要改名的文件的名字,只需要对1.txt做相应的修改就可以了。
再打开1.txt用记事本的替换功能去除B2U2,另存为2.txt保存在当前目录。即2.txt保存了目的文件名。
现在开始写批处理
@for /f %%a in (1.txt) do (
if exist %%a for /f %%b in (2.txt) do (
rename %%a %%b))
保存在后缀名为bat的文件,也放在当前目录。
这样就可以了

使用eclipse怎样打开已有工程 

        在开始使用Eclipse的时候,会发现一个问题,那就是如何打开一个现有的Eclipse工程,开始在菜单中找了好久也没找到。
  其实,Eclipse生成的结果不像VC,Jcreator那样可以直接打开,若要打开非workspace文件夹下的其他已有工程,可以打开菜单 file->import→general→existing project into space.在select root directory中选中要打开的文件夹即可。此时如果选择copy existing project into workspace就会同时将文件拷贝到workspace下。这里首先要保证要保证Eclipse两个文件.classpath和.project还在,不然无法导入,就是说Eclipse的import只认自己家的东西。
  如果要打开的工程与Eclipse的配置不同,在运行时会产生问题。解决方法是:
  打开菜单project→properties修改。主要需要修改的是java build path项。

也可以先把要导入的工程直接放在eclipse的工作区目录下,然后用eclipse新建一个工程,名字和导入的工程名字一样,就会自动把整个工程导入进去了。

http://lizemin314.blog.163.com/blog/static/111285122007102843758784/
Eclipse 插件安装、升级和卸载的方法(转)

http://www.bc-cn.net/Article/sjk/mysql/jszl/200601/3436.html
Eclipse+JBoss+MySQL开发环境设置全攻略

http://hi.baidu.com/damoqingquan/blog/item/9a405ada25cfd4dfb6fd48e9.html
eclipse插件安装

Severity and Description Path Resource Location Creation Time Id
ArrayList is a raw type. References to generic type ArrayList<E> should be parameterized  jdbc/core   line 27 1207725182750 36

9. Eclipse下的Svn配置

版本控制软件SVN的eclipse插件Subclipse,下载地址:http://subclipse.tigris.org/

添加方式:打开MyEclipse,Help—Software Updates—Find and Install…– Search for new features     to install. 下一步,New Remote site,在弹出框中,name写“svn”,URL写http://subclipse.tigris.org/update_1.2.x,一路确定下去。

       Windows->Preferences->Team检查是否有SVN节点,点击SVN即可看到该插件的设置界面。右击项目名-> Team->Share Project…打开项目共享对话框,对话框有两个选择,一是Eclipse内置的对CVS的支持,还有另外一个就是我们刚装上的SVN。选择SVN进入服务器设置界面,输入svn服务路径,用户名,密码,确认下去,到此完成。

       Could not save encoding settings.
Exception occurred while saving project preferences: /.settings/org.eclipse.core.resources.prefs.

问题:当导入html文件出现乱码怎么办!
解决办法:文件--》 右键 --》属性 改文件的编码和网页中所有的编码一致即可!

举例:针对我前面一篇讲如何使mysql,php页面和html页面不出现乱码问题可以有一下解决方案!(现在公认要用utf比较好,所以一律按照utf-8来处理)

1.参照http://blog.csdn.net/bingyupiaoyao/archive/2008/02/06/2085439.aspx我这篇文章解决相关乱码问题!
2将html文件用convertz802转化成utf-8编码(如果已经是就不改)
3.文件--》 右键 --》属性 改文件的编码为utf-8,这样就使得mysql,php,html都没有乱码了!

在eclipse中,报错:
Resource is out of sync with the file system
查阅资料后发现这是文件系统不同步的问题,是因为在eclipse之外对工程中的resource进行修改引起的;但是,有时没有在eclipse之外进行修改,也会报类似的错误。
解决办法:需要手动刷新一下资源管理器。
(1)在eclipse中,工程目录右键,选择F5(refresh)
(2)设置eclipse自动刷新。
           通过Window->Preferences->General->Workspace,选中Refresh automatically。

另外今天突然发现以前RCP应用程序启动出错,查看日志,起初以为是RCP导出问题,后来发现即使是HelloWorld的程序系统都运行报错 java.lang.UnsupportedClassVersionError: cn/com/datamanager/Application (Unsupported major.minor version 49.0)。
java -version查看才知机子上还有jre1.4。
原来是装Oracle数据库的时候自动安装的(Sybase比Oracle人性化很多,嘿嘿)。

Tiger的泛型功能使得编译器对类型的安全性进行检查,特别是Java集合,如下面的例子:

       public void nonGenericsMethod() &leftsign;

              List wordList = new ArrayList(); // no typing information on the List

              wordList.add("foo"); // causes error on list addition

       &rightsign;

l         编译器会给出下面的警告信息:

Type safety: The method add(Object) belongs to the raw type List. References to generic

 type List<E> should be parameterized

l         这对于Tiger的代码是很有帮助的,但对于JDK1.4及以前版本,不断的收到无关的警告信息是很烦人的

l         可以使用@SuppressWarnings来阻止指定类型的警告信息,如:

       @SuppressWarnings(value = &leftsign; "unchecked" &rightsign;)

       public void nonGenericsMethod() &leftsign;

              List wordList = new ArrayList(); // no typing information on the List

              wordList.add("foo"); // causes error on list addition

       &rightsign;

l         传递给@SuppressWarnings的类型值是一个数组,因此可以同时阻止多种类型的警告信息

Type safety: The method add(Object) belongs to the raw type List. References to generic type List should be parameterized

example

List    treenode = new ArrayList

treenode.add(node);

javadoc  中List这样定义 Public  interface List<E> extends Collection,Iterable
       注意这个<E>,它就是JavaTiger的类型安全标志,到这里可以给出在保证类型安全时例子中的List应该如何定义了: List<TreeNode> treenode = new ArrayList<TreeNode>();   TreeNode为自定义类型,当然可以其它类型了,不过统一使用一种类型就是安全的了,不会有这个警告。

同理,map不加<>也会出现类似的警告

Map<String,Integer> h=new HashMap<String,Integer>();

Severity and Description Path Resource Location Creation Time Id
No start tag (<a>).   line 202 1207726134734 4810

http://www.cnblogs.com/sunywong/articles/666875.html
转载:搭建Eclipse+MyEclipse+Tomcat开发环境

配置jboss IDE :点run->debug->点中jboss4.x,在右边选择debug模式,然后新建一个configuration,取名JbossServer4,然后配置jboss安装目录以及运行模式default,保存,然后在window->preferences中选择JBOSS-IDE 下面的launcher,在右边的default server中填入:jboss 4.0.x:JbossServer4 , apply,关闭窗口,这时候菜单default server中的选项都可用了,选择start,就可以启动jboss服务器啦

标签:, , ,
20080304 gsoap uclibc 3 - 十二月 1, 2008 by yippee

20080304 gsoap uclibc 3
http://www.yippeesoft.com

http://www.ibm.com/developerworks/cn/webservices/ws-soa-gsoap/index.html#download
使用 gSOAP 通过 HTTP 和 HTTPS 调用由 WSAD 创建的 J2EE Web 服务

4.Web Service故障处理
http://hi.baidu.com/lijiheng99/blog/item/ba052c08f82dc6d363d9863f.html

http://www.ibm.com/developerworks/cn/webservices/ws-tip-j2eenet4/
Web 服务编程技巧和窍门,第 4 部分: 使用 BPEL 和 WebSphere Business Integration Server Foundation 在业务流程中融合 J2EE 和 .NET 技术

http://msdn2.microsoft.com/zh-cn/library/7h3ystb6(VS.80).aspx
Web 服务描述语言工具 (Wsdl.exe)

http://gsoap2.sourceforge.net/
http://hi.baidu.com/deityz/blog/item/3f332ad9875289ed38012f22.html
gsoap中文文档(转)
1.1 作者URL
http://spaces.msn.com/members/sharklee/?partqs=cat%3D%25e8%25ae%25a1%25e7%25ae%2597%25e6%259c%25ba%25e4%25b8%

258e+Internet&_c11_blogpart_blogpart=blogview&_c=blogpart

2 gsoap文档翻译计划
2.1 gsoap文档翻译计划(序)

Creating Webservice with wasp
http://www.cjsdn.net/post/view?bid=5&id=17856

http://www.systinet.com/products/wasp_advanced/index.html
和demo代码
http://www.theserverside.com/resources/articles/Systinet-web-services-part-1/1.zip

http://www.cs.fsu.edu/~engelen/soap.html

 gSOAP eases the development of SOAP and XML Web services in C and C++ by performing XML to C/C++ language binding. By providing a transparent SOAP API that leverages strong typing to map XML schemas to C/C++ definitions, it frees users from the burden of WSDL and SOAP details.

Use gSOAP to implement or interact with web services. It is portable across a variety of platforms, and provides compiler tools for a WSDL parser, and a SOAP stub and skeleton compiler. It follows the WS-I Basic Profile 1.0a compliance recommendations, and warns about potential interopability issues before building a new web service application. This helps to keep users from having to go through another development cycle to make the service compliant. Its supported standards include:

    * SOAP 1.2
    * SOAP RPC encoding
    * SOAP document/literal style
    * XML-RPC
    * UDDI v2 inquire and publish APIs
    * SOAP attachments: MIME, DIME and MTOM
    * WS-Addressing
    * WS-Discovery
    * WS-Security
    * SSL/TLS encryption and certificate authentication

http://sourceforge.net/project/showfiles.php?group_id=52781

http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0301_lin/lin.html
使用 WebSphere Studio Application Developer、gSOAP 和 Dev-C++ 为 WebSphere Web 服务新建一个 C/C++ 客户机

http://users.skynet.be/pascalbotte/rcx-ws-doc/gsoap.htm
Chapter 5. Make a SOAP client with C/C++ and gSOAP.

http://www.javaworld.com.tw/jute/post/view?bid=19&id=163966
 请问java使用xerces的环境如何配置?我都没有成功过。

 http://blog.163.com/sjlksoft@126/blog/static/4001823120071126105951793/
 resin的配置

 http://www.ccidnet.com/tech/app/2001/09/21/58_3321.html
 SOAP净化有线协议(二):Apache SOAP介绍
  SOAP(简单对象访问协议)是一种利用XML编码数据的有线协议。它是同类协议中要求最低的一个规范,只定义了有线协议所要求的最关键的部分,有意地忽略了垃圾收集、对象激活等方面的细节。

  http://blog.csdn.net/mb459/archive/2005/04/23/360079.aspx
  从JDK下载到HelloWorld调试成功 

http://blog.csdn.net/wwwwsoe/archive/2007/04/10/1559801.aspx
ava基础:JDK1.6配置 

http://www.cn-java.com/www1/?action-viewnews-itemid-3792%27/
jdk1.6环境变量设置。

回答:为什么执行JAVA程序时,会出现Exception in thread"main" java.lang.NoClassDefFoundError的错?…
http://www.newasp.net/tech/java/14714.html

http://blog.chinaunix.net/u/19013/showart.php?id=146551
运用Apache SOAP工具包实现SOAP

http://www.phenshine.com/article.asp?id=34
Xerces下载、安装及运行实例
作者:admin 日期:2006-04-06

http://xerces.apache.org/xerces-j/
Xerces Java Parser 1.4.4 Release

http://www.ibm.com/developerworks/websphere/library/techarticles/0301_lin/lin.html
Creating a C/C++ client for a WebSphere Web service using WebSphere Studio Application Developer, gSOAP, and Dev-C++

http://blog.csdn.net/tuwen/archive/2007/10.aspx
http://www.newasp.net/tech/java/14714.html
回答:为什么执行JAVA程序时,会出现Exception in thread"main" java.lang.NoClassDefFoundError的错?…

http://www.xichy.cn/java/j2ee/469351.shtml
Exception in thread "main" java.lang.NoClassDefFoundError:

JBPM-Decision的用法  

http://www.vlight.org/bbs/printthread.php?f=5&t=284
使用gsoap 用c++编写linux下的webservice客户端程序

http://www.fish888.com/gSOAP-Web-Service-t78047
使用gSOAP开发Web Service客户端

gsoap中文文档(8.1.1)
http://www.bugoo.com.cn/bencandy.php?id=37596

http://my.donews.com/singingsilence/2008/01/28/%E7%94%A8c%E5%AE%9E%E7%8E%B0webservice-gsoap/
用C实现WebService — gsoap

http://hi.baidu.com/litkinger/blog/item/17a3843336d674fc1b4cff3f.html
gsoap转载

gSOAP is a free C/C++ SOAP toolkit (alpha) with SSL and WSDL tools.

It includes a full-featured SOAP RPC (and SOAP DOC/LIT) compiler. The kit
provides a rapid application development environment when integrated with
MSVC++ or any other IDE for C and C++. The package includes extensive
documentation and numerous examples.

http://www.cs.fsu.edu/~engelen/soap.html

http://www.pocketsoap.com/4s4c/
4S4C aka Simon\’s SOAP Server Services For COM

http://www.sqldata.com/documents/SoapClient.htm
SOAP Agent 

A C++ SOAP Client Library v3.0

http://www.codeproject.com/KB/webservices/SoapClient_CPP.aspx
SOAP client for C++

http://www.soapclient.com/SourceCode.html
SOAP Tools and Source Code

http://dotnettips.com/CommentView,guid,95db05fb-b929-469b-b883-bd5e90ab2a93.aspx
Navigation for dotNetTips.com – SOAP 2.0 Toolkit: SDK and Samples Released

–访问DB2 
  
  –创建链接服务器 
  EXEC   sp_addlinkedserver   @SERVER=\’srv_lnk\’,   –链接服务器名 
        @srvproduct   =   \’\', 
        @provider   =   \’MSDASQL\’, 
        @provstr   =   \’Initial   Catalog=PUBS;Data   Source=DB2;HostCCSID=1252;Network   Address=XYZ;Network   Port=50000;Package   Collection=admin;Default   Schema=admin;\’ 
  
  –添加登陆用户 
  exec   sp_addlinkedsrvlogin   @rmtsrvname   =   \’srv_lnk\’,   @useself   =   \’false\’,   @locallogin   =   \’sa\’,   @rmtuser   =   \’DB2User\’,   @rmtpassword   =   \’DB2Password\’ 
  
  –进行查询 
  select   *   from   OPENQUERY   (srv_lnk,\’SELECT   *   FROM   DBName2.Table1Name\’)  

  http://www.cnblogs.com/pegger/archive/2007/06/18/788133.html
  转:轻松掌握ISO8583报文协议

  http://blog.chinaunix.net/u1/48834/showart_386144.html
  learning python

  http://www.itug.cn/Servers/Web/20070820/1560.htm
  uClinux下的web server问题和解决方法

  ms自己的soap sdk太大了

目前找到个gSoap,使用方式不太好

easysoap还行,但使用者不是很多,大家有什么推荐么
以前用过一个叫Axis的,C++版Bug太多了,Java版的倒是比较稳定。

http://www.bctest.com/checkup/affix/finance/007_other1.txt
POS终端规范

8583包的相关资料06
http://hi.baidu.com/javaing/blog/item/244d5d10daff37fec2ce79d2.html

http://www.cnblogs.com/jojoke/archive/2007/12/14/995146.html
8583解析类

http://www.360doc.com/showweb/0/0/433052.aspx
ISO8583接口详细资料 

标签:, , , ,

20080304 gsoap uclibc 2 - 十一月 30, 2008 by yippee

20080304 gsoap uclibc 1

使用gSoap开发Web Service C/C++客户端
Aigui.LIU@ihep.ac.cn
2006-08-02

一、开发环境准备
1、从gSoap官方网站 http://gsoap2.sourceforge.net下载软件
2、根据文档安装配置gSoap(略)

二、如何开发WEB服务客户端
1、基本流程
(1)从WEB服务提供者获取WEB Service的WSDL文件;
(2)使用gSoap工具wsdl2h,根据WSDL文件生成C/C++语法结构的头文件;
(3)使用gSoap预编译器soapcpp2,根据.h头文件中定义的信息来生成客户端代码框架;
(4)实现客户端例程;
(5)GCC编译客户端,生成可执行代码。

2、一个例子
(1)WEB服务Hello.jws(http://castor.ihep.ac.cn:8080/axis/Hello.jws):
public class Hello &leftsign;
public String hello(String name) &leftsign;
if(name==null)
name = "";
return name +", welcome to the world of web service!";
&rightsign;
&rightsign;
(2)获取WEB服务描述文件hello.wdsl
http://castor.ihep.ac.cn:8080/axis/Hello.jws?wsdl
(3)使用gSoap工具wsdl2h,根据WSDL文件生成C/C++语法结构的头文件hello.h
wsdl2h -c hello.wsdl
-c 表示生成纯C头文件,不加-c生成C++头文件
(4)使用gSoap预编译器soapcpp2,根据.h头文件中定义的信息来生成客户端代码框架
soapcpp2 -c hello.h
-c 表示生成纯C头代码,不加-c生成C++代码
(5)实现客户端例程hello.c
#include "soapH.h"
#include "HelloSoapBinding.nsmap"
int main()
&leftsign;
struct soap soap;
struct ns1__helloResponse ret;
soap_init(&soap);
if (soap_call_ns1__hello(&soap, NULL, NULL, "Aigui.LIU", &ret) == SOAP_OK)
printf("%s\\n", ret._helloReturn);
else
soap_print_fault(&soap, stderr);
soap_destroy(&soap);
soap_end(&soap);
soap_done(&soap);
return 0;
&rightsign;
(6)GCC编译客户端,生成可执行代码hello
$(CC) $(CFLAGS) -o hello hello.c soapC.c soapClient.c $(SOAPC)
其中(Makefile中定义),
GSOAP_PATH=/home/liuag/software/gsoap/gsoap-linux-2.6
SOAPC=$&leftsign;GSOAP_PATH&rightsign;/stdsoap2.c
CC=gcc
COFLAGS=-O2
CWFLAGS=-Wall
CIFLAGS=-I $&leftsign;GSOAP_PATH&rightsign;
CMFLAGS=
CFLAGS= $(CWFLAGS) $(COFLAGS) $(CIFLAGS) $(CMFLAGS)
(7)运行结果
$ ./hello
$ Aigui.LIU, welcome to the world of web service!

三、参考文献
1、http://gsoap2.sourceforge.net
2、gSoap User Guide

在实作SOAP讯息解析/建构的功能时,本文是重
用gSOAP程式库辅助软体介面的建构,gSOAP程
式库除可完成SOAP讯息的解析与建构之外,也
可产生客户端stub与伺服器端skeleton,如此可减
少程式设计师的负担.

本文利用gSOAP所
提供的程式库实作SOAP parser与message generator,而SOAP介面中的HTTP
Interface,虽然可自行设计,但本文则是重用thttp作为HTTP Interface,因为thttp
除具有执行效率良好的优点,并且拥有良好的安全机制,可以保护关键功能不被
窃取或攻击.

采用gSOAP辅助客户端程式的开发,使用的方法如下:
1. 使用wsdl2h从服务描述档产生对应的C语言标头档.
2. 以soapcpp2由C语言标头档产生客户端的stub.
3. 使用stub建构客户端程式.
第一步骤所产生的C语言标头档,是使用gSOAP工具时所产生的暂存档案,在
之后建构客户端的过程中并不会用到,而客户端的stub会负责将呼叫包装成
SOAP讯息经由网路传送到客户端,并且处理有关错误的讯息以及资料的序列
化,除此之外,stub也会将远端的功能包装成一系列可程式化介面,供程式设计
师使用,因此当程式设计师需使用关键的功能时,只需呼叫由gSOAP产生的
stub,即可使用关键运算功能.
软体工程师在开发客户端程式时,可能会发生错误,这时可用由Axis所提
供的TCPMonitor,来监控客户端雨嵌入式系统之间传送的讯息.

No hablo bien espagnol
pero credo que es bastante para un contenudo technico !?

Ho encrontrado esta error
la solucion fue d\’incluir el "nsmap" file in el "main"

Aqui las lineas que ho incluido en el "soapClient.cpp"

//// Ajout de JLV
#include "AjoutServiceSoap.nsmap"
#include "soapAjoutServiceSoapProxy.h"

const char server[] = "http://localhost/AjoutWS/AjoutService.asmx";

int main(int argc, char **argv)
&leftsign;
AjoutServiceSoap s;
struct soap soap;
soap_init(&soap);
_ns1__Ajout req;
req.soap = &soap;
int x=1, y=2;
req.x=x; req.y=y;

struct soap soap2;
soap_init(&soap2);
_ns1__AjoutResponse rep;
rep.soap = &soap2;

s.__ns1__Ajout(&req, &rep);
printf("reponse=%d", rep.AjoutResult);
soap_destroy(&soap2);
soap_end(&soap2);
soap_destroy(&soap);
soap_end(&soap);
return 0;
&rightsign;
//// Ajout de JLV

there is also a Qt based application server that supports XML-RPC based on web services: FEAST.

http://trolltech.com/partners/direct…ers/clausmark/

http://dist.trolltech.com/pdf/Clausm…nBrief_web.pdf

http://www.clausmark.com/feast_en.phtml

FEAST handles the concurrent user situation as well as taking care of
backend data sources with connection pooling etc. Actually FEAST is more
then a server; it is development framework for distributed applications
based on Qt.

FEAST uses SOAP HTTP as the communication protocol (it does not rely on
gSOAP though and does away with several of the limitations of gSOAP) so it is easy to use over the internet through firewalls

This is a post more for gSOAP than Qt.

It\’s about the "error LNK2001: unresolved external symbol _namespaces" reported by xgoan.

Since this is one of the few places i\’ve found mentioning this problem, i just want to post the solution for anyone suffering the same problem.

The fix is to #include the nsmap file that is generated by gSOAP in your own cpp files:

#include "soapH.h" // or whatever it is called, you must already have it
#include "whatever.nsmap" // this is what you have to add to fix the problem

The solution was originally posted in an spanish forum:
http://www.programacion.com/foros/37/msg/171805

基于.net开发平台项目案例集锦

he author has port gSoap to vXworks. In fact, it is written in ANSI C
and easy to port other platforms. I have ported it to ARM7TDMI +
uCLinux

for more infomation, please refer to author\’s website:

http://www.cs.fsu.edu/~engelen/soap.html

http://www.info-life.cn/?cat=3

标签:, , , ,
20080304 gsoap uclibc 1 - 十一月 29, 2008 by yippee

20080304 gsoap uclibc 1

Clinux 内核编译常见错误及解决方法(uClinux kernel compile Troubleshooting)
http://chinajz.spaces.live.com/blog/cns!ead556f11efe5c17!176.entry

PRB: R6009 完全堆时针对环境 " 没有足够空间 ":
http://support.microsoft.com/kb/63382

Q config/autoconf.h: No such file or directory
    A #include <config/autoconf.h>=====>
    #include <linux/autoconf.h>
    ABOUT
    ./uClibc/include/paths.h
    ./uClibc/libc/sysdeps/linux/common/syscalls.c

    http://www.ckacka.com/wordpress/?p=4
    构建从x86到ARM的交叉编译工具链

    uClibc的设置(可选的C库)

    $ cd $&leftsign;PRJROOT&rightsign;/build-tools/
    $ tar zxf uClibc-0.9.16.tar.gz
    $ cd uClibc-0.9.16
    $ make CROSS=arm-linux- menuconfig

设置uClibc
选项  设置
KERNEL_SOURCE  $&leftsign;PRJROOT&rightsign;/kernel/arm-linux-2.4.19
DEVEL_PREFIX  $&leftsign;PRJROOT&rightsign;/tools/uclibc
DEVEL_TOOL_PREFIX  $&leftsign;PRJROOT&rightsign;/tools/uclibc/usr

编译并安装uClibc

    $ make CROSS=arm-linux-
    $ make CROSS=arm-linux- PREFIX="" install

uClibc会在$&leftsign;PRJROOT&rightsign;/tools/uclibc/usr/bin目录生成gcc wrapper (arm-uclibc-gcc,arm-uclibc-ld等),用以编译基于uClibc的应用程序。

动态链接

    $ make CROSS_COMPILE=arm-uclibc-

静态链接

    $ make CROSS_COMPILE=arm-uclibc- LDFLAGS="-static"

The path \’/linux-2.4/include/asm\’ doesn\’t exist.
I bet you didn\’t set KERNEL_SOURCE, TARGET_ARCH or UCLIBC_HAS_MMU
correctly when you configured uClibc. Please fix these settings.
原来要填写绝对路径

http://tech.ccidnet.com/art/302/20071220/1315799_1.html
嵌入式基础:ARM下GCC交叉编译器的制作
5.编译uclibc库

make menuconfig

make CROSS=arm-linux-uclibc-

make PREFIX="/staging_dir" install

注:在menuconfig配置中,Library Installation Options的参数设置如下:

(/lib) Shared library loader path

(/) uClibc runtime library directory

(/usr/) uClibc development environment directory

在/staging_dir/usr目录下会生成include和lib两个目录,这两个目录会生成下一步制作gcc所需要的文件,已经被我们链接到相应的目录里去了。如果之前没有把目录链接到安装目录下的lib和include中,则下步编译gcc会出现许多错误,比如找不到crt?.o等等。

http://www.xxlinux.com/linux/e/DoPrint/?classid=14&id=1502
kernel uclibc bootloader 的编译方法
http://www.ebdev.com/jupiter/kernel_uclibc.htm

KERNEL 编译 Compile by default configuration (Can compile for Jupiter or virgine) 首先运行cygwin 进入E:\\cygwin\\home\\administrator\\uClinux-eisc\\uClinux-2.4.20 i. Execute the following at cygwin 1. > make mrproper 2. > make Jupiter_config # or make virgine_config 3. > make oldconfig 4. > make dep 5. > make ii. At last “romimage.bin” is generated through above process iii. “romimage.bin” is combined with these part. 1. seloader.bin (bootloader image) 2. linux.bin (linux kernel image) 3. rdgz.bin (compressed ramdisk image) B. Configuration revision i. Execute following between ‘2’ and ‘3’ in process ‘i’. ii. > make menuconfig (if xfee86 is installed, “make xconfig”) 详见UClinux for EISC user manual.doc文件 如果只是修改了部分程序,不用重头编译,只需要将所修改的程序的*.o文件手工删除。 然后进入:\\cygwin\\home\\administrator\\uClinux-eisc\\uClinux-2.4.20 执行make uclibc 编译 进入E:\\cygwin\\home\\administrator\\uClinux-eisc\\uClibc 执行make bootloader 编译 进入E:\\cygwin\\home\\administrator\\uClinux-eisc\\forJupiter\\seloader 执行make clean make 注意1.:在cygwin下换行符“\\”有时不能被识别,如果出错就把\\去掉,并把分开的程序变成 同一行。 注意2.:在makefile中,有些仍使用/uclinux-2.4.6/include/,请改为/uclinux-2.4.20/include/,因为 我已经使用uclinux-2.4.20,所有的库要重新编译。 因为有缺省文件,顺序可以颠倒。

uclibc是uclinux提供的c支撑库,适用于资源有限的嵌入式系统。

由于普通linux以及libc体积较大,于是有人开发了uclinux,系统体积小,功能强大。与普通linux很相像,区别主要是缺乏mmu(内存管理单元)。

http://www.uclibc.org/downloads/old-releases/

http://lanka83.blog.163.com/blog/static/32637615200766101346994/
gcc 编译器常用的命令行参数一览

http://oss.lzu.edu.cn/blog/article.php?uid_7/tid_1546.html
GCC编译的背后(第二部分:汇编和链接)

http://oss.lzu.edu.cn/blog/article.php?uid_7/tid_1546.html
GCC编译的背后(第二部分:汇编和链接)

arm-elf-gcc   -I../..   -o   exerclient   exerclient.c   soapC.c   soapClient.c   ../../stdsoa   p2.c
../../stdsoap2.c:   In   function   `soap_code_bits \’:
../../stdsoap2.c:1323:   warning:   comparison   is   always   true   due   to   limited   range   o   f   data   type

http://wanghaibo.spaces.live.com/
用AdventNet SNMP API获取SNMP表信息(C#)

http://download.csdn.net/source/318095
java实现 带完整源代码和文档基于SNMP/MIB的网络数据获取系统设计与实现基于AdventNet SNMP API 这是我以前做的课程,现在翻出来,拿出来跟大家共享!
基于SNMP/MIB的网络数据获取系统设计与实现

http://blog.csdn.net/zhoudshu/archive/2007/04/02/1549812.aspx
采集器C++代码在Red Hat各版本操作系统移植出现得问题

http://hi.baidu.com/sunshinexyz/blog/item/2cf46a23dc4eb54c925807d9.html
GCC警告选项例解

http://blog.sina.com.cn/u/53ebc106010006sg
C和C++混合编程

http://wwwww.javaeye.com/blog/28390
Make的使用方法

getName.java:1: package og.apache.xerces.parsers does not exist
import org.apache.xerces.parsers.DOMParser;
^
getName.java:12: cannot find symbol
symbol : class DOMParser
location: class getName
DOMParser parser = new DOMParser();
^
getName.java:12: cannot find symbol
symbol : class DOMParser
location: class getName
DOMParser parser = new DOMParser();
^

I bet you didn\’t set KERNEL_SOURCE, TARGET_ARCH or UCLIBC_HAS_MMU

/home/sf/uclua/uClinux-dist/linux-2.4.x

make CROSS=arm-linux- PREFIX="/home/sf/uclua/uClinux-dist/uClibc" install

I bet you didn\’t set KERNEL_SOURCE, TARGET_ARCH or UCLIBC_HAS_MMU

Error 6 fault: SOAP-ENV:Client [no subcode]
"No XML element tag"
Detail: [no detail]
  <?xml version="1.0" encoding="utf-8" ?>

标签:, , , ,

20071029 java cldc uclinux - 八月 2, 2008 by yippee

20071029 java cldc uclinux
http://www.yippeesoft.com

移植KVM到arm-linux(1)
http://jayya.com/?p=109

KVM在嵌入式Linux上的移植 
http://blog.csdn.net/zht_sir/archive/2007/06/03/1636342.aspx

http://dev.csdn.net/author/fyzhao/3ee7494bceb94997bf418b42a8bd009a.html
KVM本身只带有cldc1.1的类库,功能十分简单,不能满足用户的需求,本篇介绍如何对KVM进行扩展。

对KVM进行扩展,在Java层十分简单,只要向在编译Java代码时多加一个文件就可以,没什么要说的,麻烦的是如果在加入的Java类中有本地操作该怎么办?本地的C语言代码放在哪里编译才能够供KVM调用?

答案是KNI。下面就以KNI为主要内容介绍如何对KVM加以扩展,在最后附加一个具体的实现例子。

1. KNI的特点:

KNI(K Native Interface)是SUN的KVM(K Virtual Machine)所使用的本地方法调用机制。

JNI(Java Native Interface)是已经为我们所熟悉的Java本地方法调用机制,JNI一般使用在J2SE或J2EE平台上,本地方法被编进动态链接库,在运行时由Java虚拟机载入。

KVM中也需要本地调用,但JNI是“重量级”的本地调用方式,在使用时消耗的资源较多,所以针对KVM设计出了KNI,KNI被称为是JNI的一个简化版,是“轻量级”的本地调用方式。KVM不能加载动态链接库,所以在KNI机制下,本地方法不是写在库中,而是编入虚拟机内部。

以下是KNI与JNI最重要的一些区别:

KNI是“实现层”的API,即它是虚拟机实现的一部分,修改KNI的API就要重新编译虚拟机,这些API的细节对于Java程序员来说是不可见的;而JNI的API是在运行时动态加载进来的,它的修改与虚拟机无关,JNI的API对于Java程序员来说是可见的。

KNI的函数建在虚拟机内部,只能为此虚拟机所独享;而JNI的函数放在动态链接库中,可以为多个虚拟机共用。

由于在虚拟机内部,KNI的很多操作方式与虚拟机有关,在传递参数和控制对象的时候都要先经过一些特别的处理;JNI的调用方式比较直接,但可能会增加安全隐患。

KNI是JNI的简化版,功能也会弱一些,它不能创建对象,也不能调用Java层的方法。

总之,“在虚拟机内部”是KNI所有特点的根源,记得这一点,KNI的所有内容都非常容易理解。

KVM Porting 指南
4。KVM源码概览
4.1目录结构概览
解压KVM包后,在你的目录下生成如下子目录。(假定父目录为j2me_cldc1.0.3)
目录j2me_cldc1.0.3:
■api-Java类库源码
■bin-可执行文件,编译的类库
■build-编译用的makefile
■docs-说明文件
■jam-JAM(Java Application Manager)源码
■kvm-KVM源码
■samples-试例程序源码
■tools-辅助工具的源码(如JavaCodeCompact, preverifier,kdp,palm tool等)
目录j2me_cldc1.0.3kvm:
■VmCommon-所有公用的,平台无关的KVM源码都在该目录下
■VmExtra-公用的,可选的组件的源码
■VmUnix-针对Unix
■VmWin-针对Windows
目录j2me_cldc1.0.3kvmVmCommon:(所有公用的,平台无关的KVM源码)
■h-include文件
■src-源码
注:当你要port时,可以把你自己平台相关的源码置于kvm目录之中。例如我要port到W
inCE我可以这样安排我的源码(kvmVmWinCEsrc-我的源码,kvmVmWinCEh-我的头

文件,kvmVmWinCEuild-我的makefile)。
4.2 KVM源码功能简述
在j2me_cldc1.0.3kvmVmCommonsrc和j2me_cldc1.0.3kvmVmCommonh中包含了K
VM所有公用的,平台无关的源码和头文件,如下表所示:
------------------------------------
File Description
------------------------------------
StartJVM.c VM的启动和命令行的读取
bytecodes.c Java bytecodes的定义,自KVM1.0.2后,bytecode解释器被从新设
计,这部分从interpret.c分离出来。你可以定制VM,使用这里定义的bytecode的子集或
超集。
cache.h 内联缓存(inlinecaching)的支持,用以加快方法检索(
cache.c method lookup)的速度,并支持"fast" bytecodes.(注:关于m
ethodlookup请参考JLS15.12.4)
class.h 运行时java类的内部数据结构和操作
class.c
events.h 实现事件处理系统
events.c
execute.h 解释器的执行宏和操作
execute.c
fields.h 用以存储不同类型的域(field)的运行时内部结构。当一个
fields.c 新类被载入VM时,就会生成一张由这些域组成的表。
frame.h 定义栈帧(stack frame)和异常处理(exceptionhandling )的
操作。
frame.c
garbage.h 垃圾处理器和内存管理。
garbage.c
collector.c
collectorDebug.c
global.h 大量全局变量的定义
global.c
hashtable.h 实现VM内部使用的哈希表
hashtable.c
interpret.h bytecode解释器。
interpret.c
loader.h 类载入器。
loader.c
log.h 记录并输出运行时VM的诊断信息
log.c
long.h 处理64bit运算的特殊的宏
main.h 编译的选项及系统的预制设定。
messages.h 错误与警告信息
native.h JVM所需的native函数和核心native库,注意,KVM是不使用
native.c JNI(Java Native Interface)的,JNI对小设备来说开销太大了。
nativeCore.c
pool.h 常量池(Constant pool)的管理。
pool.c
profiling.h 用以描述VM的执行的数据声明与操作
profiling.c
property.h 取得Java系统特性的操作。
property.c

rom.h ROMizer(JavaCodeCompact tool) 所需的宏.
runtime.h 平台特有的操作的函数原型定义,注意这里定义的函数通过一个r
untime_md.c来实现。这也就是说runtime_md.c是建立在你想要port的平台特性之上的。
stackmap.c Stackmap操作用于支持额外的垃圾收集。
thread.h 多线程的支持与java的线程管理。
thread.c
verifier.h 类文件审核器
verifier.c

增加KVM中的系统调用API
http://kaober.spaces.live.com/

在Palm开发JAVA程式的心得 
http://bbs.ustc.edu.cn/cgi-bin/bbsanc?path=/groups/GROUP_4/Java/D900879D8/D7BE53F98/M.1933.A

KVM Porting 指南⑵
http://www.zixi.net/article/show.asp?id=37082&Page=2

标签:, , , ,

20071024 uclinux java jikes kaffe - 七月 29, 2008 by yippee

20071024 uclinux java jikes kaffe
http://www.yippeesoft.com

据说KAFFE可以运行在UCLINUX,可是。。。。。

说要JIKES。。。
然后要 zlib。。。。。。

我想,这样还能到UCLINUX。。。。。。。

We have successully ported Kaffe JVM (www.kaffe.org) to our
ARM7TDMI/uClinux platform (B2).
Kaffe was initially developed for x86/Linux platform but it\’s enough
flexible to fit an embedded system too! :-)
I have not tryied to port CDC due the fact that it\’s not an opensource project.

Unfortunately I have never worked with OSGi Framework so I don\’t really
know if it\’s needs some special
feature of the JVM (is it pure Java code or has some native code too?).
Maybe you can ask to Kaffe mailing list too

set JAVA_HOME=/home/sf/j2sdk1.4.2_04
export JAVA_HOME=/home/sf/j2sdk1.4.2_04
set PATH=$JAVA_HOME/bin:$PATH
export PATH
set CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export CLASSPATH =.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    -bootclasspath   bootclasspath   
  Cross-compile   against   the   specified   set   of   boot   classes.   As   with   the   user   class   path,   boot   class   path   entries   are   separated   by   colons   (:)   and   can   be   directories,   JAR   archives,   or   ZIP   archives.   
  
  -extdirs   directories   
  Cross-compile   against   the   specified   extension   directories.   Directories   is   a   colon-separated   list   of   directories.   Each   JAR   archive   in   the   specified   directories   is   searched   for   class   files.

As you can see, Jikes has moved again. We\’re now hosted at SourceForge®. This move was a result of IBM\’s decision to pull out of the project hosting space. Since there was a great amount of similarity between sf.net and dw/oss, the change will be mostly cosmetic.
 SourceForge.net Logo

What is Jikes?

JikesTM is a compiler that translates JavaTM source files as defined in The Java Language Specification into the bytecoded instruction set and binary format defined in The Java Virtual Machine Specification.

You may wonder why the world needs another Java compiler, considering that Sun provides javac free with its SDK. Jikes has five advantages that make it a valuable contribution to the Java community: [OSI Certified Logo]

    * Open source. Jikes is OSI Certified Open Source Software. OSI Certified is a certification mark of the Open Source Initiative.
    * Strictly Java compatible. Jikes strives to adhere to both The Java Language Specification and The Java Virtual Machine Specification as tightly as possible, and does not support subsets, supersets, or other variations of the language. The FAQ describes some of the side effects of this strict language conformance.
    * High performance. Jikes is a high performance compiler, making it ideal for use with larger projects.
    * Dependency analysis. Jikes performs a dependency analysis on your code that provides two very useful features: Incremental builds and makefile generation.
    * Constructive Assistance. Jikes strives to help the programmer write better code in two key ways. Jikes has always strived to provide clear error and warning text to assist the programmer in understanding problems, and now with release 1.19 Jikes helps point out common programming mistakes as documented in Effective Java.

    The Config

CC=m68k-elf-gcc NM=m68k-elf-nm AR=m68k-elf-ar \\
CFLAGS="-Wall -g -m5307 -Wl,-elf2flt -Os -lc " \\
LDFLAGS="-g -m5307 -Wl,-elf2flt" \\
KAFFEH=/root/workspace/kaffe/kaffe/kaffeh \\
/root/workspace/kaffe/configure \\
–host=m68k-linux \\
–build=i686-linux \\
–with-engine=intrp \\
–enable-pure-java-math \\
–with-threads=unix-jthreads \\
–disable-direct-threading \\
–prefix=/uclinux/jvm/ \\
–disable-fastjar \\
–disable-sound \\
–disable-alsa \\
–without-alsa \\
–without-esd \\
–disable-gtk-peer \\
–disable-alsatest \\
–disable-esdtest \\
–without-x \\
–disable-xmltest \\
–disable-xslttest \\
–disable-debug \\
–disable-native-awt \\
–disable-feedback \\
–without-profiling \\
–without-stats \\
–disable-gcj \\
–disable-xawt-xi18n \\
–disable-fastjar \\
–disable-shared \\
–with-staticlib \\
–with-staticbin \\
–with-staticvm \\
–without-gmp \\
–disable-rpath \\
–disable-libtool-lock \\
–with-jikes=/opt/jikes/bin/jikes


Error Code: 258
MSI (s) (40!CC) [19:00:16:625]: 产品: Microsoft SQL Server 2005 — 错误 29515。SQL Server 安装程序无法连接到数据库服务进行服务器配置。 错误为: [Microsoft][SQL Native Client]共享内存提供程序: 超时错误 [258].  有关详细信息,请参阅服务器错误日志和安装日志。有关如何查看安装日志的详细信息,请参阅 SQL Server 联机丛书中的“如何查看安装日志文件”。

错误 29515。SQL Server 安装程序无法连接到数据库服务进行服务器配置。 错误为: [Microsoft][SQL Native Client]共享内存提供程序: 超时错误 [258].

同事点个重试就OK了。。。。。。

Compiling Kaffe
—————

- Configure-ing:

     1. You must decide if you will use a static or a dynamically linked VM.
        In most cases a shared VM is the preferable scenario – it\’s smaller but you
        need to be sure that you have all the libraries needed on the target device.
        In this case specify the following options to the configure script:
       
        In the case when only java based applications will run on the device and they
        will be started directly after the kernel boots (for example instead of init)
        it is a good idea to use a static VM and no libraries on the target board.
        Pass these options to configure:
      
     2. Choose the engine.
        My experience shows that on systems with slower CPUs the intrp engine is
        faster than jit.
        You might try both of them to see what fits your needs/device best.
        The factor here is the speed because the difference between the storage used with jit and
        the one used with intrp is not considerable. If your target platform supports jit3 you
        may consider testing that too.

     3. Remove the profiling and debugging (at least for the final sollution):
           –disable-debug
           –disable-xprofiling
           –disable-xdebugging
           –disable-feedback
           –without-profiling
           –without-stats

        To be sure that these are applied (for example) check the gcc otptions used during the compilation
        for "-g".

     4. If you don\’t enable the use of pthreads you will save some storage space from the
        libpthreads.so but if other applications will use it on the target device you might
        enable it.     
       
     5. Disable the gcj support:
           –disable-gcj

标签:, , , ,
20071024 uclinux java - 七月 28, 2008 by yippee

20071024 uclinux java
http://www.yippeesoft.com

嵌入式Linux与Java
Java 2 Micro Edition(J2ME官方站点)
http://www.javasoft.com/j2me/

waba为小设备提供一个编程平台。它被定义为一种语言,一个虚拟机,一个类文件格式以及功能类的设置。
http://wabasoft.com/products.shtml

Kaffe is a clean room implementation of the Java virtual machine, plus the associated class libraries needed to provide a Java runtime environment. The Kaffe virtual machine is free software, licensed under the terms of the GNU General Public License.
Kaffe is a great choice as a base for virtual machine education and/or research, or if you need a virtual machine as an integral component of an open source or free software Java distribution.
http://www.kaffe.org

Wonka(一个java虚拟机,超小)
http://www.acunia.com/wonka

-msoft-float 
                              Generate   output   containing   library   calls   for   floating   point.     Warning:   there 
                              is     no   GNU   floating-point   library   for   SPARC.     Normally   the   facilities   of   the 
                              machine\’s   usual   C   compiler   are   used,   but   this   cannot     be     done     directly     in 
                              cross-compilation.       You   must   make   your   own   arrangements   to   provide   suitable 
                              library   functions   for   cross-compilation. 
  
                              -msoft-float   changes   the   calling   convention   in   the   output     file;     therefore, 
                              it   is   only   useful   if   you   compile   all   of   a   program   with   this   option.

         关于怎样查出一个库函数到底在哪个库文件中,我想到一个变通的办法,以查找fcntl函数在哪个库文件中为例吧:
1、找到一个使用fcntl的可执行文件,如test_fcntl。实在不行,自己编一个只有fcntl函数的c文件,然后编译一下得了。
2、使用“ldd test_fcntl”命令,可以追踪出该可执行文件到底使用了哪些库文件。通常可能有几个到几十个。
3、根据要查找的函数的作用和上一步所得到的各库文件的名字大致推测一下,该函数可能会在哪个或哪些库中。
4、最后使用"nm test_fcntl"命令,依次查找一下第三步所得到的库文件,通常就可以最后确定fcntl函数到底在哪个库中。

比如,我用上面的方法查出fcntl函数在“/lib/tls/libc.so.6”库中。

sun公司的虚拟机现在只有java卡虚拟机原码不开放,其他的都已经开放了,只不过对中国大陆地区有点儿限制。大家努力一下,下载到应该不难。
在网上已经有其他公司虚拟机的产品,比较有名的是kaffe虚拟机,他们针对不同的平台都开发了相应的java虚拟机,大家有兴趣可以到 www.kaffe.org网站上去看看,网站上提供了移植的文档。现在在消费类电子产品上运行java程序已经是一种趋势(java 语言产生的原始动力就在于此:)),java虚拟机也应该会成为各个嵌入式产品厂商研究的热点,如果看到java程序在自己虚拟机上运行流畅,会很有成就感的:)

4.2 KVM源码功能简述
 
  在j2me_cldc1.0.3\\kvm\\VmCommon\\src和j2me_cldc1.0.3\\kvm\\VmCommon\\h中包含

了KVM所有公用的,平台无关的源码和头文件,如下表所示:

------------------------------------
File               Description
------------------------------------
StartJVM.c         VM的启动和命令行的读取

bytecodes.c        Java bytecodes的定义,自KVM1.0.2后,bytecode解释器被
                
                 从新设计,这部分从interpret.c分离出来。你可以定制VM,
                
                 使用这里定义的bytecode的子集或超集。

cache.h            内联缓存(inlinecaching)的支持,用以加快方法检索(

cache.c            method lookup)的速度,并支持“fast” bytecodes.(注:
                
                 关于methodlookup请参考JLS15.12.4)
  
class.h            运行时java类的内部数据结构和操作
class.c

events.h           实现事件处理系统
events.c

execute.h          解释器的执行宏和操作
execute.c

fields.h           用以存储不同类型的域(field)的运行时内部结构。当一个
fields.c         
                 新类被载入VM时,就会生成一张由这些域组成的表。

frame.h            定义栈帧(stack frame)和异常处理(exceptionhandling
frame.c           
                  )的操作。

garbage.h       垃圾处理器和内存管理。
garbage.c
collector.c
collectorDebug.c

global.h           大量全局变量的定义
global.c

hashtable.h        实现VM内部使用的哈希表
hashtable.c

interpret.h        bytecode解释器。
interpret.c

loader.h           类载入器。
loader.c

log.h              记录并输出运行时VM的诊断信息
log.c

long.h             处理64bit运算的特殊的宏

main.h             编译的选项及系统的预制设定。

messages.h         错误与警告信息

native.h           JVM所需的native函数和核心native库,注意,KVM是不使用
                
native.c           JNI(Java Native Interface)的,JNI对小设备来说开销太大
                
nativeCore.c       了。

pool.h             常量池(Constant pool)的管理。
pool.c

profiling.h        用以描述VM的执行的数据声明与操作
profiling.c

property.h         取得Java系统特性的操作。
property.c

rom.h              ROMizer(JavaCodeCompact tool) 所需的宏.

runtime.h          平台特有的操作的函数原型定义,注意这里定义的函数通过
        
                 一个runtime_md.c来实现。这也就是说runtime_md.c是建立
                
                 在你想要port的平台特性之上的。

stackmap.c         Stackmap操作用于支持额外的垃圾收集。

thread.h           多线程的支持与java的线程管理。
thread.c

verifier.h         类文件审核器
verifier.c
------------------------------------
 
  在j2me_cldc1.0.3\\kvm\\VmExtra\\src和j2me_cldc1.0.3\\kvm\\VmExtra\\h中包含

了KVM所有外加的公用平台无关的源码和头文件,其中主要包括windows、Unix下最

常见的网络协议的实现;把类载入目标平台的文件接口(该目标平台拥有一个常规

的文件系统);检视,解压缩JAR文件的工具;还有Jave级的debugger和KDWP(

KVM Debug Wire Protocol)接口的实现。除了上述之外,还包括一些用来处理异步

事件的额外的宏,并定义了VM的一些在非嵌入式,基于命令行的系统(如windows和

Solaris)上运行所需要的启动操作。

\\VmExtra中的文件如下表所示:

———————-+————————————————–+
文件                   描述
———————-+————————————————–+
async.h                支持异步I/O的宏。

loaderFile.c           从文件系统中载入Java类文件的操作。

main.c                 缺省的main程序,用于具备文件系统并支持VM从命令行启

                     动的平台。

jar.h                  阅读、解压Jar文件的相关操作。
inflate.h
inflateint.h
inflatetables.h
jar.c
inflate.c

commProtocol.h         windows、Unix下常见的网络协议的实现,如串行端口通
commProtocol.c         讯,套接字(socket),数据报(datagram)等。
socketProtocol.h
socketProtocol.c
datagramProtocol.h
datagramProtocol.c

resource.c             读取外部资源的流式(stream-based)协议的实现。

debugger.h             Java级debugger和KDWP接口的实现。
debugger.c
debuggerCommands.h
debuggerStreams.h
debuggerInputStream.c
debuggerOutputStream.c
debuggerSocketIO.c

fakeStaticMemory.c     内存管理的定义,可以使KVM在Windows/Unix下模拟特
                    
                     殊的USESTATIC模式(也称"simonizing"),以便调试。
                    
                     这种模式最初是为Spotless/KVM系统开发的,用以克服
                    
                     一些Palm独有的内存限制。

nativeSpotlet.h        定义事件处理的底层操作和对宿主操作系统的事件的截       
nativeSpotlet.c
                     取例程,以及为事件调用已注册的handler方法。

标签:, , ,

20071024 uclinux kvm  Illegal instruction - 七月 27, 2008 by yippee

20071024 uclinux kvm  Illegal instruction
http://www.yippeesoft.com

java2和java有什么不同?我一直弄不明白的问题,经过几天对java的深入了解,原来问题是这样的….

其实,SUN公司把Java在其SDK 1.2之后的版本都统称叫Java 2

~~~~~~~~~~~~~~~~~~~~~~~~~~~

KVM已经清楚了,我也知道K是kilo的意思,中文意思是“千”,java虚拟机简写应该是JVM才对,K从何而来……

由于KVM最小只要160K bytes的记忆体就可以执行,因此称为 K Virtual Machine,其中K是表示kilo byte的意思,其中包含了128K用来执行Virtual Machine及本身所必须具备的基本Libraries。

KVM只需要若干千字节(KB)就能实现其完整的功能,这就是K的来由,我想它的确很好的概括和体现了KVM的特点和优点。

P.S:Libraries:库,程序[文件,对象]库。

 KVM 是最小的运行时环境的一部分,包含在 Java 2 Platform, Micro Edition(J2ME 平台)软件中,适用于那些内存和 CPU 能力有限的设备。移动电话、寻呼机和个人数字助理 (PDA) 中通常会运行 KVM,用以提供常见的计算功能。

     KVM 类似于 JVM(Java 虚拟机),它也包含运行用 Java 技术编写的应用程序和小应用程序的引擎。KVM 适用于无线电话和移动设备,而 JVM 则适用于计算机。Java 2 Platform, Standard Edition(J2SE 平台)包含 JRE、Plug-in 软件和 JVM。

     J2ME 技术使用包括 KVM 在内的许多不同大小的虚拟机。KVM 只是 CLDC(有限连接设备配置)的一项应用,它用于在移动设备上运行 Java 软件。

     JCVM
    JVM这个可能是全世界跑得最多的虚拟机了,但是随着智能卡大面积进入市场,JVM将会让位给这个JAVA虚拟机的最小版本—-JCVM.
    Java Card虚拟机(JCVM)规范定义了Java程序设计语言的一个子集和一个用于智能卡的兼容Java的虚拟机,包括二进制数据表示和文件格式,以及JCVM指令集

    KVM是 Kilobyte Virtual Machine (千字节虚拟机),那么命名是因为它的内存大小是以千字节来量度,而不是像 Java虚拟机那样需要兆字节。 因为有这么苛刻的内存要求, KVM的功能只是完整 JVM的的子集。 你可以从 Javasoft站点上找到全部的信息,但是值得注意的是它不支持reflection、JNI和自定义类装载器以及可变的安全机制。这里是一种ARM芯片上的KVM结构示意图。

需要注意的是,Sun的KVM实现了Sun定义的虚拟机的规范,但是开发Java KVM的不只是Sun一家。IBM也有Java KVM,它的名字叫做J9,可以运行在WinCE上。据说J9的运行效率比Sun的KVM要高

# ./kvm -classpath ./ HelloWorld
Hello World!

public class HelloWorld &leftsign;

  public HelloWorld() &leftsign;
    System.out.println("Hello World!");
  &rightsign;

  public static void main(String arg[]) &leftsign;
    HelloWorld hw = new HelloWorld();
  &rightsign;
&rightsign;

# ./kvm -classpath ./ HelloWorld
Illegal instruction

第一类手机游戏是J2ME平台(Java 2 Micro Edition),J2ME本是为嵌入式平台设计的Java,但由于Java生来就需要Java虚拟机(JVM)来解释,所以在嵌入式产品很少用J2ME(太慢太耗内存)。但在手机游戏中J2ME倒有用武之地,我想这可能主要是Java可跨OS平台的原因,因为手机的OS是千奇百怪的。我对J2ME完全外行,但上次听Square Enix公司的人说,J2ME与我们同学学过的J2EE还是有较大差别的。据我所知,目前手机中用的较多的是KJava语言,KJava是运行在一种叫K Java Virtual Machine的解释器上(K JVM是SUN早期为演示J2ME在嵌入式系统应用而开发的一个虚拟机),所以将在K JVM上运行的J2ME叫KJava。尽管SUN说今后不保证支持K JVM,将开发新的更高性能的J2ME虚拟机取而代之,但由于KJava出现较早,很多早期的手机游戏软件都将K JVM假想成J2ME虚拟机的标准了,所以目前有大量的KJava手机游戏软件存在,而且还在用KJava继续开发。特别是日本的手机游戏软件由于开发较早(像叫什么 docomi的日本最大的电信运营商手机游戏搞得很火),多是基于KJava的。所以目前市场上在招聘手机游戏软件人才时,很多要求掌握KJava。有关J2ME请到Sun的网站上找资料。

1。KVM简介
KVM(K Virtual Machine 或称 KJava Virtual Machine)是一种小巧,易于移植的
JVM,被专门设计用来支持小型的,资讯有限的设备,例如手机,PDA等。
KVM团队的最高设计目标是开发一个最小的且"完整"的JVM,它必须能提供对核心Jav
a语言的支持并能运行在资源有限的设备上(例如只有几十到几百Kb)。
更规范的说, KVM的设计要点有:
·小型,VM的核心只占据大约60Kb的静态内存空间。(根据不同的平台或编译选项有
所不同)
·轻巧易于移植。
·模块化,易于定制。
·尽量做到既"完整"又"快速"。
KVM是用C语言实现的,因此可以方便的移植到许多平台上,只要你能找到该平台的C

compiler。KVM是J2ME的一部分,KVM通常被作为CLDC和MIDP构架的底层实现。KVM是由
sun实验室最初的Spotless系统发展而来。(注:sun最初提出KJava是用来开发palm os
的,那时Palm上的Kjava程序称为Spotlet,类似于今天的MIDlet。)

标签:, , ,