�쐬 2002/10/11
����������{��ǂ�ł����Apache Axis�̋L�����ڂ��Ă܂����B J2EE1.4(���o�[�W����)�ł́AWeb�T�[�r�X���d�l�ɓ��� �炵�����A������ƒ��ׂƂ������Ƃ������ƂŁAApache Axis�̃y�[�W�� �`���Ă݂܂����B�g�b�v�y�[�W������ƁANEWS (October 7, 2002) : Axis 1.0 is now available! �Ƃ̂��ƁB����͏{����`�A�Ƃ������Ƃł��������G���Ă݂܂����B
�����ł́A�ȉ��̊��Řb�������߂܂��B���ɂ���ẮA�ʓr�K�v��jar(XML�p�[�T�Ƃ�)�����邩������܂���B
JDK 1.4
Tomcat 4.0.4
http://xml.apache.org/axis/
���xml-axis-10.zip���_�E�����[�h���܂��B
�W�J�����A�[�J�C�u�̒���webapps/axis��Web�A�v���P�[�V������ ���`�ɂȂ��Ă��܂��B��������̂܂�Web�A�v���P�[�V�����Ƃ��Ďg���܂��B
axis�t�H���_��%TOMCAT_HOME%/webapps�ȉ��ɃR�s�[���܂��B
TOMCAT���N�����A�u���E�U��http://localhost:8080/axis�ɃA�N�Z�X���܂��B
���j���[����Validate���N���b�N���܂��B
Validate�ł́A�K�v��JAR���F���ł��邩�ǂ����̃`�F�b�N���s���܂��B �����̊��ł́A "xmlsec.jar��������Ȃ��̂�XML Security���T�|�[�g����܂���" �Ƃ̌x�����o�܂������A�K�{�ł͂Ȃ��̂ŁA�������Đi�݂܂����B
�܂��A���̃y�[�W��Note�ŁA"Tomcat 4.x�ł́Ajava.*�Ajavax.*�ł͂��܂�N���X��JAR��CATALINA_HOME/commons/lib�ɒu���Ȃ�������Ȃ�"�Ə����Ă���̂ŁA jaxrpc.jar��TOMCAT��common/lib�̉��ɃR�s�[���܂����B
�ȒP��Web�T�[�r�X�̃f�v���C���s�����@������B .java�t�@�C�����g���q��.jws�ɕς��AAxis Web�A�v���P�[�V������ �R���e�L�X�g���[�g�ɒu�������B �ŏ���Web�T�[�r�X�̃��N�G�X�g���������Ƃ��ɁA�R���p�C������A Web�T�[�r�X�����s����܂��B Web�T�[�r�X�ŁAJSP�݂����Ȃ��̂ł��傤���H
�ŏ��Ƃ������ƂŁAHello.java���쐬���܂��B
public class Hello{ public String sayHello(){ System.out.println("call sayHello"); return "hello!"; } }
�쐬����.java���E�F�u�T�[�r�X�Ƃ���publish���܂��B
�쐬����Hello.java�̊g���q��.jws�ɂ��āAAxis Web�A�v���P�[�V�����̃��[�g�ɃR�s�[���܂��B
�u���E�U���J���Ĉȉ���URL�փA�N�Z�X���܂��B
http://localhost:8080/axis/Hello.jws?wsdl
�����\�����ۂ����̂��o���Ă܂��ˁB
�N���C�A���g����Hello�E�F�u�T�[�r�X�𗘗p���܂��B WSDL����Java�v���L�V�R�[�h�����āA����𗘗p������@�� ����̂ł����A����͌�ɂ��āA�����ł́A �`�}�`�}�ƃ��\�b�h���Ȃǂ��w�肵�Ď��s���Ă݂܂��傤�B
�N���C�A���g�����s����ɂ́A�N���C�A���g���� Axis��jar���N���X�p�X�ɒʂ��K�v������܂��B ��邱�Ƃ͒P���Ȃ�ł����A���������ԈႢ�₷����ƂȂ̂ŁA ���������ɂ����܂��傤�B
�ȉ��͊��ݒ�̃o�b�`�t�@�C���̗�ł��B �W�J�����A�[�J�C�u��C:\apps\xml-axis-10�ɂ���Ƃ��āA lib�ȉ��̂��ׂĂ�jar�ɃN���X�p�X��ʂ��܂��B �Ȃ��A��Ŏg���e��c�[���̗��p�ɂ�servlet.jar���K�v�݂����Ȃ̂ŁA �����Œlj����Ă����܂��B
set AXIS_LIB=C:\apps\xml-axis-10\lib set CLASSPATH=. set CLASSPATH=%CLASSPATH%;%AXIS_LIB%\axis.jar set CLASSPATH=%CLASSPATH%;%AXIS_LIB%\axis-ant.jar set CLASSPATH=%CLASSPATH%;%AXIS_LIb%\commons-discovery.jar set CLASSPATH=%CLASSPATH%;%AXIS_LIB%\commons-logging.jar set CLASSPATH=%CLASSPATH%;%AXIS_LIB%\jaxrpc.jar set CLASSPATH=%CLASSPATH%;%AXIS_LIB%\log4j-1.2.4.jar set CLASSPATH=%CLASSPATH%;%AXIS_LIB%\saaj.jar set CLASSPATH=%CLASSPATH%;%AXIS_LIB%\wsdl4j.jar set CLASSPATH=%CLASSPATH%;C:\apps\jakarta-tomcat-4.0.4\common\lib\servlet.jar
�N���C�A���g�R�[�h���쐬���܂��B
import org.apache.axis.client.Call; import org.apache.axis.client.Service; import javax.xml.namespace.QName; public class HelloClient { public static void main(String [] args) throws Exception{ String endpoint = "http://localhost:8080/axis/Hello.jws"; Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress( new java.net.URL(endpoint) ); call.setOperationName(new QName("http://localhost:8080/", "sayHello")); String ret = (String) call.invoke( new Object[0] ); System.out.println(ret); } }
�R���p�C�����܂��B �N���X�p�X���ʂ��ĂȂ��ƁA�G���[���o�܂��B
�N���C�A���g�����s���܂��B
C:\apps\xml-axis-10\test>java HelloClient hello!
�������Ahello!���ĕԂ��Ă��܂����B
WSDD(Web Service Deployment Descriptor)�t�@�C�����g���ăf�v���C ���s���܂��B JWS���g�����@�͊ȒP�ł����A�Z�ʂ������܂���B WSDD�t�@�C�����g�����ƂŁA�f�v���C�ݒ���J�X�^�}�C�Y���邱�Ƃ��ł��܂��B
������hello�T�[�r�X��������̂ŁA���x��echo�T�[�r�X�����܂��B
public class Echo{ public String sayEcho(String message){ System.out.println("called sayEcho : message=" + message); return message; } }
�R���p�C�����܂��B
�R���p�C�����ꂽEcho.class�t�@�C����Axis Web�A�v���P�[�V�������F���ł���ꏊ �ɒu���܂��B�Ⴆ�A�ȉ���Echo.class���R�s�[���܂��B
webapps/axis/WEB-INF/classes/
WSDD�t�@�C�����쐬���܂��B�ȉ��̓��e�̃t�@�C����deploy.wsdd�Ƃ��ĕۑ����܂��B
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="echo" provider="java:RPC"> <parameter name="className" value="Echo"/> <parameter name="allowedMethods" value="*"/> </service> </deployment>
�f�v���C�����s���܂��B java org.apache.axis.client.AdminClient���g���܂��B �����͍������wsdd�t�@�C���̃p�X�ł��B
C:\apps\xml-axis-10\test>java org.apache.axis.client.AdminClient deploy.wsdd - Processing file deploy.wsdd -Done processing
�u���E�U���J���Ĉȉ���URL�փA�N�Z�X���܂��B
http://localhost:8080/axis/services/echo?wsdl
WSDL���\������Ă܂��ˁB
Axis Web�A�v���P�[�V�����̃��C�����j���[����View��I�����A �f�v���C��Web�T�[�r�X�ꗗ������ƁAecho�T�[�r�X���o�^����Ă��邱�Ƃ��A �킩��܂��B
�����ł�WDSL����java�v���L�V�R�[�h�������������āA �v���L�V�R�[�h�𗘗p���ăN���C�A���g���쐬���Ă݂܂��傤�B
���������ɂ� org.apache.axis.wsdl.WSDL2Java���g���܂��B
C:\apps\xml-axis-10\test>java org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/services/echo?wsdl������WSDL��URL���w�肵�āAWSDL2Java�����s����ƁA�f�t�H���g�ŁA localhost�p�b�P�[�W�̒��ɁAecho�T�[�r�X��Java�R�[�h���쐬����܂��B
�N���C�A���g�R�[�h���쐬���܂��B
import localhost.Echo;//Echo��localhost.Echo���Փ˂���ꍇ�̑Ώ� import localhost.*; public class EchoClient{ public static void main(String[] args) throws Exception{ EchoService locator = new EchoServiceLocator(); Echo echo = locator.getecho(); String s = echo.sayEcho("hoge"); System.out.println(s); } }hello�T�[�r�X�̂Ƃ��ƈقȂ�A ���ʂ�Java�N���X&�C���^�[�t�F�C�X�𑀍�ł��Ă܂��ˁB hello�T�[�r�X�̂Ƃ��C�`�C�`���������e�́A�������ꂽ�v���L�V(�X�^�u) �R�[�h�ɏ�����Ă��܂��B
���s���܂��B
C:\apps\xml-axis-10\test>java EchoClient hoge
���s����܂����I
��L�菇�ł͈ꏏ�ɂȂ��Ă��܂��Ă܂����A �p�u���b�V���[(Web�T�[�r�X�̍쐬��)�ƃN���C�A���g(Web�T�[�r�X�̗��p��) ���s�����Ƃ��čl����ƁA�������₷���ł��傤�B
�p�u���b�V���[���s���̂��AWeb�T�[�r�X�̃N���X������āAdeploy�A publish���āA�Ƃ�����Ƃł��B
�N���C�A���g���s���̂́Apublish���ꂽWSDL�����ƂɁA Java�C���^�[�t�F�C�X������A �N���C�A���g�R�[�h�������A���s���邱�Ƃł��B
���z�Ƃ��ẮA����������Ƃ߂�ǂ������ł��ˁB
�p�u���b�V���[��Hello���邾���Ȃ̂ɁAWSDL������ăf�v���C���Ȃ���Ȃ��B
JWS�̎d�g�݂͂߂�ǂ������ጸ�̂��߂̖ʔ������݂��Ǝv���܂��B
�ł��A���ɂ�WSDL�g��Ȃ�publish���@�A
WebService.export(Hello.class);
�Ƃ��ł��Ă����������A�Ƃ��v���܂����B
�N���C�A���g��AXIS�̃N���X�p�X��ʂ��āA�X�^�u������āA���s�B�B�B
�N���C�A���g�ɕK�v��jar��JDK�ɑg�ݍ��܂��ƃN���X�p�X�̐ݒ�Ȃǂ�
�s�v�ɂȂ邩������Ȃ����ǁB�B�B
�N���C�A���g�R�[�h�̍쐬�ɃC���^�[�t�F�C�X���K���K�v�Ȃ̂ŁA
WSDL2Java�͂͂����Ȃ����B�B�B
import http://localhost:8080/axis/services/hello?wsdl
�Ƃ������āA�X�^�u�Ȃ͓��I�����ɂ��Ē�����Ɗy�Ȃ�ł����A�������B
Web�T�[�r�X�⏕�@�\�̂���֗���IDE�g�����Ă��Ƃ�����B