To learn web service, we need to learn WSDL. This xml file defines the services that we deploy in our web service.
Here, we get a example of WSDL.
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://localhost:8080/bookstore/services/BookSvc"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="http://localhost:8080/bookstore/services/BookSvc"
xmlns:intf="http://localhost:8080/bookstore/services/BookSvc"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns1="http://model.bookstore.com"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<schema targetNamespace="http://model.bookstore.com" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="Book">
<sequence>
<element name="ISDN" nillable="true" type="xsd:string"/>
<element name="name" nillable="true" type="xsd:string"/>
<element name="page" type="xsd:int"/>
</sequence>
</complexType>
</Schema>
</wsdl:types>
<wsdl:message name="addBookResponse">
</wsdl:message>
<wsdl:message name="addBookRequest">
<wsdl:part name="book" type="tns1:Book"/>
</wsdl:message>
<wsdl:portType name="BookSvc">
<wsdl:operation name="addBook" parameterOrder="book">
<wsdl:input message="intf:addBookRequest" name="addBookRequest"/>
<wsdl:output message="intf:addBookResponse" name="addBookResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="BookSvcSoapBinding" type="intf:BookSvc">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="addBook">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="addBookRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://bookstore.com" use="encoded"/>
</wsdl:input>
<wsdl:output name="addBookResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/bookstore/services/BookSvc" use="encoded"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="BookSvcService">
<wsdl:port binding="intf:BookSvcSoapBinding" name="BookSvc">
<wsdlsoap:address location="http://localhost:8080/bookstore/services/BookSvc"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
So many infomations in this file. But first of all, we need to understand the format of this file.
To me, the defination of namespace is a problem.
My qustions are: For xmlns, xmlns:tns1,xmlns:intf..., What do they mean? How to use them?
After I refered to some articles in internet. I get the answer:
每個namespace屬性都聲明了一個縮略語,用在文檔中。例如"xmlns:xsd"就為
But I get another question that no one reply.
refer
'我們都知道,WSDL應該是格式正確的XML文檔。進一步,還應該把它看作一個Schema,因此,<definitions>元素中可以定義targetNamespace屬性,表示在這個元素下的所有元素都屬于這個目標名稱空間。
xmlns表示缺省的名稱空間,...'
So what's difference between 'targetnamespace' and default 'xmlns'?
?????????????????????????????????????????????????????????
Reference:
http://www.cnblogs.com/bjzhanghao/archive/2004/10/13/51614.html
posted @
2008-03-14 10:11 托托姆 閱讀(818) |
評論 (0) |
編輯 收藏
現在正在做的項目中,就有undo、redo的操作。使用的是java本身的undoManager。但是因為使用的第三方軟件包已經把它封裝過了,所以用起來并不是直接使用java的undomanager。其間,遇到這樣的問題:有些操作不想被undo所管理,但是圖形上的變換卻總是會被listener加入到undo的edits中。想了很多辦法,包括繼承再封裝undomanager將edits傳出來保存,需要恢復的時候再設進去、discard所有的edits、找尋第三方軟件封裝undoableEdit的方法,以使得操作不被undo....最后,用最簡單的方法解決問題:設置一個boolean變量,然后重載listener的方法,用這個變量來控制是否調用super.undoableEditHappened即可。 唉,真笨啊,用這么簡單的問題都能解決的,搞了老半天...
----------------------------
A ja A ja, fighting fighting
posted @
2007-01-17 13:24 托托姆 閱讀(431) |
評論 (0) |
編輯 收藏
http://www.5ud.net
就是這個網站。
posted @
2007-01-15 13:04 托托姆 閱讀(361) |
評論 (0) |
編輯 收藏
load進一個圖片,如果對它進行放大縮小呢?
查找了很多地方的資料,找到以下的方法可以解決放大縮小圖片問題:
public static ImageIcon imageIconZoom(ImageIcon orgImageIcon, int newWidth,
int newHeight) {
BufferedImage tag = new BufferedImage(newWidth, newHeight,
BufferedImage.TYPE_INT_ARGB);
tag.getGraphics().drawImage(orgImageIcon.getImage(), 0, 0, newWidth,
newHeight, null);
return new ImageIcon(tag);
}
如何對圖片著色呢?
static final float CRITICAL_BAND_MATRIX[][] = { { 1.0f, 0.0f, 0.0f , 0.0f},
{ 0.0f, 0.0f, 0.0f , 0.0f}, { 0.0f, 0.0f, 0.0f,0.0f }, { 1.0f, 0.0f, 0.0f, 0.0f } };
static final float MAJOR_BAND_MATRIX[][] = { { 1.0f, 0.0f, 0.0f , 0.0f},
{ 0.0f, 0.5f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f , 0.0f}, { 1.0f, 0.5f, 0.0f, 0.0f } };
static final float MINOR_BAND_MATRIX[][] = { { 1.0f, 0.0f, 0.0f , 0.0f},
{ 0.0f, 1.0f, 0.0f , 0.0f}, { 0.0f, 0.0f, 0.0f, 0.0f } , { 1.0f, 1.0f, 0.0f, 0.0f }};
static final float WARNING_BAND_MATRIX[][] = { { 0.5f, 0.0f, 0.0f , 0.0f},
{ 0.0f, 0.0f, 0.0f , 0.0f}, { 0.0f, 0.0f, 1.0f , 0.0f} , { 0.5f, 0.0f, 1.0f, 0.0f }};
static final float CLEAR_BAND_MATRIX[][] = { { 0.0f, 0.0f, 0.0f, 0.0f },
{ 0.0f, 1.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 1.0f, 0.0f }, { 0.0f, 1.0f, 1.0f, 0.0f } };
static final float UNKNOWN_BAND_MATRIX[][] = { { 0.0f, 0.0f, 0.0f, 0.0f },
{ 0.0f, 0.0f, 0.0f , 0.0f}, { 0.0f, 0.0f, 1.0f, 0.0f } , { 0.0f, 0.0f, 1.0f, 0.0f }};
public static ImageIcon ColorImage(ImageIcon orgImage, int alarmStatus ){
float[][] targetMatrix ;
switch(alarmStatus){
case CommonConstants.ALARM_UNKNOWN:
targetMatrix = UNKNOWN_BAND_MATRIX;
break;
case CommonConstants.ALARM_CLEAR:
targetMatrix = CLEAR_BAND_MATRIX;
break;
case CommonConstants.ALARM_MINOR:
targetMatrix = MINOR_BAND_MATRIX;
break;
case CommonConstants.ALARM_MAJOR:
targetMatrix = MAJOR_BAND_MATRIX;
break;
case CommonConstants.ALARM_CRITICAL:
targetMatrix = CRITICAL_BAND_MATRIX;
case CommonConstants.ALARM_WARNING:
targetMatrix = WARNING_BAND_MATRIX;
break;
default:
targetMatrix = UNKNOWN_BAND_MATRIX;
}
BufferedImage b1 ;
BufferedImage biSrc = new BufferedImage(orgImage.getIconWidth(), orgImage.getIconHeight(), BufferedImage.TYPE_INT_ARGB);
// biSrc.getGraphics().setColor(Color.white);
// biSrc.getGraphics().fillRect(0, 0, orgImage.getIconWidth(), orgImage.getIconHeight());
biSrc.getGraphics().drawImage(orgImage.getImage(),0,0,null);
BufferedImage biTar = new BufferedImage(orgImage.getIconWidth(), orgImage.getIconHeight(), BufferedImage.TYPE_INT_ARGB);
Raster srcRaster = biSrc.getRaster();
WritableRaster dstRaster = (WritableRaster) biTar.getRaster();
BandCombineOp bandCombineOp = new BandCombineOp(targetMatrix, null);
bandCombineOp.filter(srcRaster, dstRaster);
b1 = biTar;
return new ImageIcon(b1);
}
其中值得一說,卻又說不清楚的地方是:BufferedImage.TYPE_INT_ARGB, 為什么要用TYPE_INT_ARGB,而不用TYPE_INT_RGB,之前我是用的TYPE_INT_RGB,而且matrix也是3*3的一個矩陣,后來發現,著色前,圖片透明的地方,著色后,變成了黑色的了,于是猜想ARGB中的A應該是alphe的意思,就摸索構造了矩陣,并且著了實驗,用是能用,不知道對不對啊。。。。
posted @
2006-12-29 16:38 托托姆 閱讀(951) |
評論 (1) |
編輯 收藏