2008年03月18日

1.<context:annotationconfig/> 将隐式地向 Spring 容器注册 AutowiredAnnotationBeanPostProcessorCommonAnnotationBeanPostProcessorPersistenceAnnotationBeanPostProcessor 以及 equiredAnnotationBeanPostProcessor 这 4 个 BeanPostProcessor。
2.

2008年01月22日

不管用什么用户名和密码,都不登录进去。

产生原因:8080端口被其他服务占用

一般装了Oracle的系统都会产生这种问题,解决的方法有两种:
1、 更改Tomcat的端口,这个比较简单,我们在Tomcat 5.5\conf下的server.xml更改默认的端口8080即可。
2、 禁用Oracle服务。我们在“计算机管理”中的“服务”中找到OracleServiceORCL,停止掉就OK了。不过这并不是一种完美的做法,因为很多时候我们是同时需要用到Tomcat和Oracle两种服务的!

===========================================
改变或关闭Oracle XDB的ftp和http端口

Oracle 9i开始,创建数据库时默认包含了XDB特性。一旦启动了数据库和 Listener,Oracle XDB的http服务就占用8080端口,刚好和JBoss、Tomcat等默认端口冲突。因此,必须有一个做出更改。改Tomcat等容易,只是一时不 知道怎么改XDB的配置。
在Google上搜索一下,找到了答案。原来Oracle XDB的端口设置不在配置文件中,而是在数据库里。修改XDB的http和ftp服务端口的方法有3种:
1。使用sys登录Oracle,利用dbms_xdb修改端口设置
SQL> — Change the HTTP/WEBDAV port from 8080 to 8081
SQL> call dbms_xdb.cfg_update(updateXML(
2 dbms_xdb.cfg_get()
3 , ‘/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()’
4 , 8081))
5 /
Call completed.
SQL> — Change the FTP port from 2100 to 2111
SQL> call dbms_xdb.cfg_update(updateXML(
2 dbms_xdb.cfg_get()
3 , ‘/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()’
4 , 2111))
5 /
Call completed.
SQL> COMMIT;
Commit complete.
SQL> EXEC dbms_xdb.cfg_refresh;
PL/SQL procedure successfully completed.
2。使用OEM console,选择数据库,XML Database,Configuration。更改XDB的有关设置。
3。去掉数据库的初始化参数: dispatchers=’(PROTOCOL=TCP) (SERVICE=XDB)’,将会禁止XDB的http和ftp服务。

参考:
http://www.msino.com/jsp/tomcat-xdb.html

 

 

2006年08月26日
时间:2006-6-15
 

你正在学习CSS布局吗?是不是还不能完全掌握纯CSS布局?通常有两种情况阻碍你的学习:

第一种可能是你还没有理解CSS处理页面的原理。在你考虑你的页面整体表现效果前,你应当先考虑内容的语义和结构,然后再针对语义、结构添加CSS。这篇文章将告诉你应该怎样把HTML结构化。

另一种原因是你对那些非常熟悉的表现层属性(例如:cellpadding,、hspace、align="left"等等)束手无策,不知道该转换成对 应的什么CSS语句。 当你解决了第一种问题,知道了如何结构化你的HTML,我再给出一个列表,详细列出原来的表现属性用什么CSS来代替。

结构化HTML

我们在刚学习网页制作时,总是先考虑怎么设计,考虑那些图片、字体、颜色、以及布局方案。然后我们用Photoshop或者Fireworks画出来、切割成小图。最后再通过编辑HTML将所有设计还原表现在页面上。

如果你希望你的HTML页面用CSS布局(是CSS-friendly的),你需要回头重来,先不考虑“外观”,要先思考你的页面内容的语义和结构。

外观并不是最重要的。一个结构良好的HTML页面可以以任何外观表现出来,CSS Zen Garden是一个典型的例子。CSS Zen Garden帮助我们最终认识到CSS的强大力量。

HTML不仅仅只在电脑屏幕上阅读。你用photoshop精心设计的画面可能不能显示在PDA、移动电话和屏幕阅读机上。但是一个结构良好的HTML页面可以通过CSS的不同定义,显示在任何地方,任何网络设备上。

开始思考

首先要学习什么是"结构",一些作家也称之为"语义"。这个术语的意思是你需要分析你的内容块,以及每块内容服务的目的,然后再根据这些内容目的建立起相应的HTML结构。

如果你坐下来仔细分析和规划你的页面结构,你可能得到类似这样的几块:

标志和站点名称

主页面内容

站点导航(主菜单)

子菜单

搜索框

功能区(例如购物车、收银台)

页脚(版权和有关法律声明)

我们通常采用DIV元素来将这些结构定义出来,类似这样:

<div id="header"></div>

<div id="content"></div>

<div id="globalnav"></div>

<div id="subnav"></div>

<div id="search"></div>

<div id="shop"></div>

<div id="footer"></div>

这不是布局,是结构。这是一个对内容块的语义说明。当你理解了你的结构,就可以加对应的ID在DIV上。DIV容器中可以包含任何内容块,也可以嵌套另一个DIV。内容块可以包含任意的HTML元素—标题、段落、图片、表格、列表等等。

根据上面讲述的,你已经知道如何结构化HTML,现在你可以进行布局和样式定义了。每一个内容块都可以放在页面上任何地方,再指定这个块的颜色、字体、边框、背景以及对齐属性等等。

使用选择器是件美妙的事

id的名称是控制某一内容块的手段,通过给这个内容块套上DIV并加上唯一的id,你就可以用CSS选择器来精确定义每一个页面元素的外观表现,包括标 题、列表、图片、链接或者段落等等。例如你为#header写一个CSS规则,就可以完全不同于#content里的图片规则。

另外一个例子是:你可以通过不同规则来定义不同内容块里的链接样式。类似这样:#globalnav a:link或者 #subnav a:link或者#content a:link。你也可以定义不同内容块中相同元素的样式不一样。例如,通过#content p和#footer p分别定义#content和#footer中p的样式。从结构上讲,你的页面是由图片、链接、列表、段落等组成的,这些元素本身并不会对显示在什么网络 设备中(PDA还是手机或者网络电视)有影响,它们可以被定义为任何的表现外观。

一个仔细结构化的HTML页面非常简单,每一个元素都被用于结构目的。当你想缩进一个段落,不需要使用blockquote标签,只要使用p标签,并对p 加一个CSS的margin规则就可以实现缩进目的。p是结构化标签,margin是表现属性,前者属于HTML,后者属于CSS。(这就是结构于表现的 相分离.)

良好结构的HTML页面内几乎没有表现属性的标签。代码非常干净简洁。例如,原先的代码<table width="80%" cellpadding="3" border="2" align="left">,现在可以只在HTML中写<table>,所有控制表现的东西都写到CSS中去,在结构化的HTML中, table就是表格,而不是其他什么(比如被用来布局和定位)。

亲自实践一下结构化

上面说的只是最基本的结构,实际应用中,你可以根据需要来调整内容块。常常会出现DIV嵌套的情况,你会看到"container"层中又有其它层,结构类似这样:

<div id="navcontainer">

<div id="globalnav">

<ul>a list</ul>

</div>

<div id="subnav">

<ul>another list</ul>

</div>

</div>

嵌套的div元素允许你定义更多的CSS规则来控制表现,例如:你可以给#navcontainer一个规则让列表居右,再给#globalnav一个规则让列表居左,而给#subnav的list另一个完全不同的表现。

用CSS替换传统方法

下面的列表将帮助你用CSS替换传统方法:

HTML属性以及相对应的CSS方法

HTML属性

CSS方法说明

align="left"

align="right" float: left;

float: right; 使用CSS可以浮动 任何元素:图片、段落、div、标题、表格、列表等等

当你使用float属性,必须给这个浮动元素定义一个宽度。

marginwidth="0" leftmargin="0" marginheight="0" topmargin="0" margin: 0; 使用CSS, margin可以设置在任何元素上, 不仅仅是body元素.更重要的,你可以分别指定元素的top, right, bottom和left的margin值。

vlink="#333399" alink="#000000" link="#3333FF" a:link #3ff;

a:visited: #339;

a:hover: #999;

a:active: #00f;

在HTML中,链接的颜色作为body的一个属性值定义。整个页面的链接风格都一样。使用CSS的选择器,页面不同部分的链接样式可以不一样。

bgcolor="#FFFFFF" background-color: #fff; 在CSS中,任何元素都可以定义背景颜色,不仅仅局限于body和table元素。

bordercolor="#FFFFFF" border-color: #fff; 任何元素都可以设置边框(boeder),你可以分别定义top, right, bottom和left

border="3"cellspacing="3" border-width: 3px; 用CSS,你可以定义table的边框为统一样式,也可以分别定义top, right, bottom and left边框的颜色、尺寸和样式。

你可以使用 table, td or th 这些选择器.

如果你需要设置无边框效果,可以使用CSS定义: border-collapse: collapse;

<br clear="left">

<br clear="right">

<br clear="all">

clear: left;

clear: right;

clear: both;

许多2列或者3列布局都使用 float属性来定位。如果你在浮动层中定义了背景颜色或者背景图片,你可以使用clear属性.

cellpadding="3"

vspace="3"

hspace="3" padding: 3px; 用CSS,任何元素都可以设定padding属性,同样,padding可以分别设置top, right, bottom and left。padding是透明的。

align="center" text-align: center;

margin-right: auto; margin-left: auto;

Text-align 只适用于文本.

象div,p这样的块级可以通过margin-right: auto; 和margin-left: auto;来水平居中

一些令人遗憾的技巧和工作环境

由于浏览器对CSS支持的不完善,我们有时候不得不采取一些技巧(hacks)或建立一种环境(Workarounds)来让CSS实现传统方法同样的效 果。例如块级元素有时侯需要使用水平居中的技巧,盒模型bug的技巧等等。所有这些技巧都在Molly Holzschlag的文章《Integrated Web Design: Strategies for Long-Term CSS Hack Management》中有详细说明。

2006年06月23日

1.鸭子和螃蟹赛跑,一起到达终点,难分胜负,裁判说:你们来个剪刀石头布吧?鸭子大怒:妈的,算计我?我一出是布,他总是剪刀。

2.某日,老师在课堂上想看看一学生智商有没有问题,问他 “树上有十只鸟,开枪打死一只,还剩几只?”
一个学生反问“是无声手枪或别的无声的枪吗?”
“不是。”
“枪声有多大?”
“80-100分贝。”
“那就是说会震的耳朵疼?”
“是。”
“在这个城市里打鸟犯不犯法?”
“不犯。”
“您确定那只鸟真的被打死啦?”
“确定。”偶已经不耐烦了“拜托,你告诉我还剩几只就行了,ok”
“ok,树上的鸟里有没有聋子?”
“没有。”
“有没有关在笼子里的?”
“没有。”
“边上还有没有其他的树,树上还有没有其他鸟?”
“没有。”
“有没有残疾的或饿的飞不动的鸟?”
“没有。”
“算不算怀孕肚子里的小鸟?”
“不算。”
“打鸟的人眼有没有花?保证是十只?”
“没有花,就十只。” 偶已经满脑门是汗,且下课铃响,但他继续问,
“有没有傻的不怕死的?”
“都怕死。”
“会不会一枪打死两只?”
“不会。”
“所有的鸟都可以自由活动吗?”
“完全可以。”
“如果您的回答没有骗人,”学生满怀信心的说,“打死的鸟要是挂在树上没掉下来,那么就剩一只,如果掉下来,就一只不剩。”
老师晕倒!!!!

3.听到有外国乐团来演出,小王决定带五岁的儿子去接受古典音乐的熏陶。女高音歌手和乐队在指挥的调度下充满激情地演绎着乐章,儿子却看得有些发蒙,不解地问小王:
“爸爸,为什么那个老头一直用棍子吓唬那个女演员呢?”
小王微笑道:“不是吓唬,老头是乐队的指挥。”
儿子:“要是没有吓唬,那个女演员为什么叫得这么大声呢?”

2006年06月16日

出现此问题的原因是,在 Windows 2000 发行时 Windows XP 尚不存在。Windows 2000引导程序不知道已在 Windows XP 中做了改动。计算机需要知道这些改动才能加载 Windows XP。若要解决此问题,请用 Windows 2000启动计算机,然后将 Windows XP 光盘上 I386 文件夹中的NTLDR、Bootfont.bin和Ntdetect.com文件复制到系统驱动器的根目录中。

2006年06月08日

如果你想一次全部禁用Windows XP的自动播放功能,可以使用组策略。

1、点击“开始”选择“运行”,键入“gpedit.msc”,并运行,打开“组策略”窗口;

2、在左栏的“本地计算机策略”下,打开“计算机配置_管理模板_系统”,然后在右栏的“设置”标题下,双击“关闭自动播放”;

3、选择“设置”选项卡,勾取“已启用”复选钮,然后在“关闭自动播放”框中选择“所有驱动器”,单击“确定”按钮,退出“组策略”窗口。

在“用户配置”中同样也可以定制这个“关闭自动播放”。但“计算机配置”中的设置比“用户配置”中的设置范围更广。有助于多个用户都使用这样的设置。

提醒:“关闭自动播放”设置是只能使系统不再列出光盘和移动存储的目录,并不能够阻止自动播放音乐CD盘。要阻止音乐CD的自动播放,你就只有更改移动设备的属性了。

2006年05月26日

4.10使用vc调用

需下载msSoapToolkit20.exe

引用

#import "msxml3.dll"

using namespace MSXML2;

#import "C:\Program Files\Common Files\MSSoap\Binaries\mssoap1.dll" exclude("IStream", "ISequentialStream", "_LARGE_INTEGER", "_ULARGE_INTEGER", "tagSTATSTG", "_FILETIME") raw_interfaces_only

using namespace MSSOAPLib;

例程:

新建工程àMFC AppWizard(exe)[ Mclient]àstep1à基本对话à其他默认值即可

修改源文件:

< StdAfx.h>

// stdafx.h : include file for standard system include files,

// or project specific include files that are used frequently, but

// are changed infrequently

//



#if !defined(AFX_STDAFX_H__045CD307_9518_4AF1_8CE3_8FFE38D1ACB2__INCLUDED_)

#define AFX_STDAFX_H__045CD307_9518_4AF1_8CE3_8FFE38D1ACB2__INCLUDED_



#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000



#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers



#include <afxwin.h> // MFC core and standard components

#include <afxext.h> // MFC extensions

#include <afxdisp.h> // MFC Automation classes

#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls

#ifndef _AFX_NO_AFXCMN_SUPPORT

#include <afxcmn.h> // MFC support for Windows Common Controls

#endif // _AFX_NO_AFXCMN_SUPPORT







#import "msxml3.dll"

using namespace MSXML2;



#import "C:\Program Files\Common Files\MSSoap\Binaries\mssoap1.dll" exclude("IStream", "ISequentialStream", "_LARGE_INTEGER", "_ULARGE_INTEGER", "tagSTATSTG", "_FILETIME") raw_interfaces_only

using namespace MSSOAPLib;





#define MSG(message) \

{ \

::MessageBox(NULL,_T(message),NULL,MB_OK | MB_ICONEXCLAMATION| MB_APPLMODAL);\

goto cleanup; \

}





#define CHECK_HRESULT(hr, message) \

if (FAILED(hr)) \

{ \

MSG(message); \

}





//{{AFX_INSERT_LOCATION}}

// Microsoft Visual C++ will insert additional declarations immediately before the previous line.



#endif // !defined(AFX_STDAFX_H__045CD307_9518_4AF1_8CE3_8FFE38D1ACB2__INCLUDED_)

<MClient.h>

// MClient.h : main header file for the MCLIENT application

//



#if !defined(AFX_MCLIENT_H__9A397DA6_5A62_4AEF_BE5E_6C7629322ECC__INCLUDED_)

#define AFX_MCLIENT_H__9A397DA6_5A62_4AEF_BE5E_6C7629322ECC__INCLUDED_



#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000



#ifndef __AFXWIN_H__

#error include ’stdafx.h’ before including this file for PCH

#endif



#include "resource.h" // main symbols



/////////////////////////////////////////////////////////////////////////////

// CMClientApp:

// See MClient.cpp for the implementation of this class

//



class CMClientApp : public CWinApp

{

public:

CMClientApp();



// Overrides

// ClassWizard generated virtual function overrides

//{{AFX_VIRTUAL(CMClientApp)

public:

virtual BOOL InitInstance();

//}}AFX_VIRTUAL



// Implementation



//{{AFX_MSG(CMClientApp)

// NOTE – the ClassWizard will add and remove member functions here.

// DO NOT EDIT what you see in these blocks of generated code !

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

};





/////////////////////////////////////////////////////////////////////////////



//{{AFX_INSERT_LOCATION}}

// Microsoft Visual C++ will insert additional declarations immediately before the previous line.



#endif // !defined(AFX_MCLIENT_H__9A397DA6_5A62_4AEF_BE5E_6C7629322ECC__INCLUDED_)

4.8使用vb6.0调用

需下载msSoapToolkit20.exe

添加引用:Microsoft Soap Type Library

位置:”C:\Program Files\Common Files\MSSoap\Binaries\ MSSOAP1.dll”

调用方法:

Dim cc As New MSSOAPLib.SoapClient

例程:

新建工程标准EXE添加3个textbox控件,text1,text2,text3添加一个button控件Command1

代码如下:

Option Explicit

Dim cc As New MSSOAPLib.SoapClient

Private Sub Command1_Click()

cc.mssoapinit "http://192.168.0.4/yundan/Service1.asmx?WSDL"

Me.Text3.Text = cc.test(CInt(Text1.Text), CInt(Text2.Text))

End Sub

4.9使用vbscript调用

需下载msSoapToolkit20.exe

引用:MSSOAP.SoapClient

例程:

Option Explicit

Const WSDL_URL = "http://192.168.0.4/yundan/service1.wsdl"

WScript.echo "Connecting: " & WSDL_URL

Dim Calc

Set Calc = CreateObject("MSSOAP.SoapClient")

Calc.mssoapinit WSDL_URL

Dim Answer

Answer = Calc.test(14,28)

WScript.Echo "14+28=" & Answer

将其存成domo.vbs文件,直接双击运行。


4.7使用vb.net调用

无需下载任何组件

新建项目Visual Basic项目windows应用程序。

在解决方案资源管理器中添加web引用,输入wsdl文件所在地址。

将web引用改名为yundan.

yundan.(service_name)即可引用

*需引用System.web.services*

例程:

Public Class Form1

Inherits System.Windows.Forms.Form

#Region " Windows 窗体设计器生成的代码 "

Public Sub New()

MyBase.New()

InitializeComponent()

End Sub

Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

If disposing Then

If Not (components Is Nothing) Then

components.Dispose()

End If

End If

MyBase.Dispose(disposing)

End Sub

Private components As System.ComponentModel.IContainer

Friend WithEvents Label1 As System.Windows.Forms.Label

Friend WithEvents TextBox1 As System.Windows.Forms.TextBox

<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

Me.Label1 = New System.Windows.Forms.Label()

Me.TextBox1 = New System.Windows.Forms.TextBox()

Me.SuspendLayout()

Me.Label1.AutoSize = True

Me.Label1.Location = New System.Drawing.Point(96, 40)

Me.Label1.Name = "Label1"

Me.Label1.Size = New System.Drawing.Size(91, 14)

Me.Label1.TabIndex = 0

Me.Label1.Text = "Webservice演示"

Me.TextBox1.Location = New System.Drawing.Point(88, 144)

Me.TextBox1.Name = "TextBox1"

Me.TextBox1.TabIndex = 1

Me.TextBox1.Text = "TextBox1"

Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)

Me.ClientSize = New System.Drawing.Size(292, 273)

Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.TextBox1, Me.Label1})

Me.Name = "Form1"

Me.Text = "VB.net webserive演示"

Me.ResumeLayout(False)

End Sub

#End Region

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim cc As yundan.Service1 = New yundan.Service1()

TextBox1.Text = cc.test(12, 123)

End Sub

End Class

需下载msSoapToolkit20.exe

引用:MSSOAP.SoapClient

例程:

var WSDL_URL = "http://192.168.0.4/yundan/service1.wsdl"

WScript.echo("Connecting: " + WSDL_URL)

var Calc = WScript.CreateObject("MSSOAP.SoapClient")

Calc.mssoapinit(WSDL_URL, "", "", "")

var Answer

Answer = Calc.test(14,28)

WScript.Echo("14+28=" + Answer)

将其存成domo.js文件,直接双击运行。