�@Apache-SOAP�́ASOAP��Java�ŗ��p���邽�߂̃��C�u�������Ǝv���Ă���������������낤�B����IBM��alphaWorks�ň����Ă���IBM-SOAP�iSOAP4J�j V1.2�ŁA���ꂪApache�ɏo�����̂ł���B
�@����ȍ~�A�T�[�r�X�Ƃ������t���悭�g���̂ʼn�����Ă������BSOAP�̐��E�ł̓T�[�o���ɂ��郁�\�b�h�̂��Ƃ��u�T�[�r�X�v�ƌĂԁB�T�[�r�X��SOAP�̃T�[�o�@�\�iXML-SOAP���b�Z�[�W����ǂ��ăI�u�W�F�N�g�Ƀ}�b�s���O������A���̋t���s���j�̃v���O�����ɓo�^����Ă��Ȃ��ƌĂяo�����Ƃ��ł��Ȃ��B���̓o�^�̍�Ƃ��u�T�[�r�X�̃f�v���C�ideploy�j�v�Ƃ����A�폜���邱�Ƃ��u�A���f�v���C�iundeploy�j�v�Ƃ����B�T�[�r�X�����̂́A�T�[�o���ŃC���X�^���X�����ꂽ�I�u�W�F�N�g�����A������u�^�[�Q�b�g�E�I�u�W�F�N�g�v�Ƃ����B�����āA�A�N�Z�X����̂́u�N���C�A���g�v�ł���B
�@Apache-SOAP�ɂ́A���̂��̂��܂܂�Ă���B
�@�����̋@�\�͂��ׂ�Java�Ŏ�������Ă���A�usoap.jar�v�t�@�C���ɂĒ���Ă���B
�@�܂��AApache-SOAP�͎��̂悤�ȓ����������Ă���B
�@Apache-SOAP�́A�P�Ƃł͓����Ȃ��i������O�����j�BApache-SOAP�́AJava Web�A�v���P�[�V�����T�[�o��SOAP�Ή��ɕϐg�����邽�߂̂��̂Ȃ̂ŁA����Ȃ�̃T�[�o���i���K�v�ł���B�܂��A�d�l�̏Љ�ł��G�ꂽ���A���O��Ԃ��g�����߂ɁA���O��Ԃ��T�|�[�g����XML�p�[�T���K�v�ł���B����ł́AApache-SOAP�́A������Apache�����Ă���Xerces V1.1.2�ȏ���g��Ȃ���Ȃ�Ȃ��B�ȏ���܂Ƃ߂�ƁA�ȉ��̂悤�ɂȂ�B
�@�������A�����Ɉꗗ����Ă��Ȃ��T�[�o�ł��A�g�ݍ��߂Γ����Ǝv����B�������AServlet API 2.2���T�|�[�g���Ă���K�v������B
�@Apache-SOAP�́Azip�t�@�C���Œ���Ă���A�W�J�����soap-2.0�Ƃ������f�B���N�g�����ł���B�h�L�������g��ReleaseNote.html���J���ƁA�������烊���N�������Ă���̂ł������Q�Ƃ��Ă�������������Ǝv���B�c�O�Ȃ��炱�̃h�L�������g�͉p��ł��邪�A���[�U�[�Y�E�K�C�h�A�����菇�AWebSphere�ł̓����菇�Ȃǂ�M�҂����{��ɖ����̂�IBM-TRL�i������b�������j�̃T�C�g�ɒu�����̂ł����p�������������B
http://www.trl.ibm.co.jp/projects/xml/soap/xml-soap/java/ReleaseNotes-j.html
�@�܂��A���R�̂��ƂȂ���A�v���P�[�V�����T�[�o���Z�b�g�A�b�v���������Ă���K�v������B����ɁA�A�v���P�[�V������XML�p�[�T��Xerces��JAR�t�@�C���ixerces.jar�j��T���o����悤�ɂ��Ă����K�v������B�ʏ�A�A�v���P�[�V�����T�[�o�̃N���X�p�X�̐擪��xerces.jar������悤�ɐݒ肷��B�ꕔ�̃T�[�o�ł͍\���t�@�C�����C�����Ȃ��Ƃ����Ȃ����̂�����̂ŁA���ӂ��K�v�ł���B���l��soap.jar���g�ݍ��ށB�����āASOAP�̃T�[�o�@�\�irpcrouter.jsp�j���A�v���P�[�V�����T�[�o�ɓo�^����Ώ��������ł���B�����̎菇�́AApache-SOAP��ReleaseNote.html���瓱���菇�̃����N�����ǂ�ƍڂ��Ă���B
�@Apache-SOAP��RPC�A�v���P�[�V�����́A���̎菇�ō��B
�@�T�[�r�X�����R�[�h�ɂ́ASOAP�炵���R�[�h�͕K�v�Ȃ��B�����̃I�u�W�F�N�g�ł悢�B�Ⴆ�A���̂悤�ȊȒP�ȃR�[�h���l���Ă݂悤�B
public class Userinfo { public String getPassword(String userid) { if(userid.equals("Yonemochi")) { return("pass1"); } else if(userid.equals("Pandrbox")) { return("pass2"); } else return("Unknown"); } }
���́uUserinfo�v�N���X�́AgetPassword(String)�Ƃ������\�b�h�������Ă���A���[�U�[ID�������Ƃ��ēn���ƃp�X���[�h��Ԃ��A�Ƃ������̂ł���B������R���p�C�����ăT�[�o����������N���X�p�X��ɒu���B
�@���ɕK�v�Ȃ̂́A�T�[�r�X�̔z�u�ł���B���U�I�u�W�F�N�g���s���V�X�e���ł́A�I�u�W�F�N�g���T�[�o���F�����Ă���K�v������BSOAP�ł��A�N���X�ɂ͖��O���t�����A�T�[�r�X�Ƃ��ēo�^���Ă����K�v������B�T�[�r�X�̓o�^�ɂ͂������Z�b�g���Ȃ�������Ȃ����ڂ����邪�A����͎��̒l���g�����Ƃɂ���B
ID | urn:userinfoservice | |
Scope | Request | |
ProviderType | java | |
ProviderClass | Userinfo | |
Use Static Class | false | |
Methods | getPassword | |
TypeMapping | �@ | |
�@ID�͂��̃T�[�r�X�ɕt������ŗL�̖��O�Ŏ��R�ɕt���Ă悢���A�uurn:xxxx�v�`���ɂ���BScope�́AJSP��SCOPE�^�O�Ǝ����悤�Ȃ��̂ŁA���N�G�X�g���w�肷��ƃ��N�G�X�g�P�ʂŃI�u�W�F�N�g���L���ɂȂ�BProviderType��Java�ł��邩�A�X�N���v�g�ł��邩�A�Ȃǂ��w�肷��BProviderClass�ɂ́A�N���X�����w�肷��BUse Static Class�́Afalse�̏ꍇ�C���X�^���X�����ă��\�b�h�Ăяo�����s����Btrue�̏ꍇ�Astatic���\�b�h�ƔF������Astatic�Ăяo�����s����B���̏ꍇ�A���R���\�b�h��static�ł���K�v������B������method�����u�����N���ňꗗ�L�q����BTypeMapping�́A�J�X�^���E�V���A���C�U���g���Ƃ��̂ݎw�肷��̂ŁA����͕K�v�Ȃ��B
�@�T�[�r�X��o�^���邽�߂ɂ́AApache-SOAP���Z�b�g�A�b�v�����A�v���P�[�V�����T�[�o���N�����A�u���E�U�Ŏ���URL�ɃA�N�Z�X����B
http://localhost/soap
����ƁAXML-SOAP Admin�Ƃ����y�[�W���\�������͂����i���1�j�B�����ɕ\�������uDeploy�v�{�^���������A��قǂ̃f�[�^����͂��ăf�v���C����������B
�@Apache-SOAP�ł́A�f�v���C�����g�E�f�B�X�N���v�^�i�z�u�L�q�j�Ƃ���XML�������������ăo�b�`�v���O�����œo�^������@���������Ă��邪�A����͏ȗ�����B
�@�N���C�A���g�R�[�h�ł́A�ȉ��̎菇���s���K�v������B
�@��قǂ̃T�[�r�X�uurn:userinfoservice�v�́ugetPassword�v�ɃA�N�Z�X���邽�߂̃N���C�A���g�R�[�h�͎��̂悤�ɂȂ�B
import java.io.*; import java.net.URL; import java.util.Vector; import org.apache.soap.Constants; import org.apache.soap.rpc.*; public class GetPassword { // parm1 = userid, parm2 = URL public static void main(String[] args) { String urlString = "http://localhost:8080/soap/servlet/rpcrouter"; if(args.length > 1) urlString = args[1]; Call c = new Call(); c.setTargetObjectURI("urn:userinfoservice"); c.setMethodName("getPassword"); c.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC); Vector v = new Vector(); v.addElement( new Parameter("num1", String.class, args[0], null) ); c.setParams(v); try { Response r = c.invoke(new URL(urlString), ""); Parameter result = r.getReturnValue(); System.out.println("PASSWORD:"+result.getValue()); } catch(Exception e) { e.printStackTrace(); } } }
�@�����ŁAURL�Ȃǂ͓K�X�������Ă������������B
�@������Ȃ��N���X�Ƃ��āuCall�v�A�uParameter�v�A�uResponse�v������B�����́AApache-SOAP�̃N���X�ł���BCall�I�u�W�F�N�g�́AParameter�I�u�W�F�N�g���A������Vector�Ƃ��Ĉێ����Ă���Ainvoke()���\�b�h�ɂ��ASOAP��ʂ��ăT�[�o�ɑ��M�����BCall�I�u�W�F�N�g�̓T�[�o���ŕ�������ă��\�b�h�̌Ăяo���Ɏg���AResponse�I�u�W�F�N�g�������SOAP�ő���Ԃ���Ă���BResponse�I�u�W�F�N�g�̒��ɂ́A���\�b�h�̖߂�l��Parameter�I�u�W�F�N�g�Ƃ��ĕ�������Ă���Ainvoke()���\�b�h�̖߂�l�Ƃ��ĕԂ����B��������o���A���\�b�h�̖߂�l��������Ƃ�����ł���B
�@������R���p�C������ɂ́Asoap.jar���N���X�p�X�ɓ���Ă����K�v������A����Ɏ��s���ɂ́AApache-SOAP�̃����^�C�����K�v�Ƃ���xerces.jar���K�v�ɂȂ�̂ŋC��t���悤�B
�@���̃v���O���������s����ƁA���̂悤�ɁA���ʂ��\�������B
> java GetPassword Yonemochi PASSWORD:pass1
�@���āA���̂��Ƃ���A��ɏЉ��TCP�g���l���E���j�^�ł̂����Ă݂悤�B�R�}���h�v�����v�g�Ŏ��̂悤�ɃR�}���h����͂���B
java org.apache.soap.util.net.TcpTunnelGui 8080 localhost 80
����ŁAlocalhost:8080�ɃA�N�Z�X����ƁA�g���l���E���j�^��ʂ���localhost:80�ɃA�N�Z�X���邱�Ƃ��ł��A�ʉ߂����t���[�����̂������Ƃ��ł���B���M����ю�M���ꂽ�t���[���������B
POST /soap/servlet/rpcrouter HTTP/1.0 Host: localhost:8080 Content-Type: text/xml Content-Length: 418 SOAPAction: "" <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <ns1:getPassword xmlns:ns1="urn:userinfoservice" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <num1 xsi:type="xsd:string">Yonemochi</num1> </ns1:getPassword> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
HTTP/1.1 200 ok Date: Wed, 17 Jan 2001 15:40:20 GMT Server: IBM_HTTP_Server/1.3.12.1 Apache/1.3.12 (Win32) Set-Cookie: sesessionid=DVVAFIAAAAAABQFIAED2BRI;Path=/ Cache-Control: no-cache="set-cookie,set-cookie2" Expires: Thu, 01 Dec 1994 16:00:00 GMT Content-Length: 434 Connection: close Content-Type: text/xml;; charset=UTF-8 Content-Language: ja <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <ns1:getPasswordResponse xmlns:ns1="urn:userinfoservice" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <return xsi:type="xsd:string">pass1</return> </ns1:getPasswordResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
�@����́ASOAP�̎d�l�̊T���A�����Java�̎����ł���Apache-SOAP�̎g�������T�������B����́ASOAP�̃Z�L�����e�B�ɂ��ĊT������\��ł���B
Copyright © ITmedia, Inc. All Rights Reserved.