�@Jakarta Project��Commons�T�u�v���W�F�N�g�͂��܂��܂ȏ�ʂŊ��p�ł��郉�C�u�������W�߂��v���W�F�N�g�ł��B����3��ɂ킽����Commons�̑�\�I�ȃR���|�[�l���g�ɂ��Ďg������������Ă��������Ǝv���܂��B
�@Commons�͑����̃R���|�[�l���g����\������Ă��܂��B�����̂��������ɒ���Ă��Ĉ��肵�ė��p�\�Ȃ��̂�The Commons Proper�ɑ����Ă���A�����I�ȃR���|�[�l���g�ɂ��Ă�The Sandbox�ɑ����Ă��܂��B�{���e�̎��M���_�ł�The Commons Proper�ɂ́A����17�̃R���|�[�l���g���o�^����Ă��܂��B
BeanUtils | Java�̃��t���N�V����API�ƃC���g���X�y�N�V����API�֘A�̗��p���₷�����b�p�[�����R���|�[�l���g |
---|---|
Betwixt | JavaBeans��XML�����̃}�b�s���O���s�����߂̃R���|�[�l���g |
Cactus | �T�[�o�T�C�h��Java�R�[�h�̂��߂̃e�X�e�B���O�t���[�����[�N�B���݂ł�Cactus��Jakarta�̃g�b�v���x���̃v���W�F�N�g�Ɉړ�����Ă��� |
CLI | �R�}���h���C��������I�v�V�����Ɋւ���V���v����API�����R���|�[�l���g |
Collections | Java�R���N�V�����t���[�����[�N���g������N���X�Q�����R���|�[�l���g |
Discovery | ���܂��܂ȃX�L�[�}��p���ăT�[�r�X����Q�Ɩ��ƃ��\�[�X����Ή��Â��邱�Ƃɂ���ă��\�[�X�i�N���X���܂ށj�̏ꏊ����肷�邽�߂̃c�[�������R���|�[�l���g |
Digester | XML��Java�I�u�W�F�N�g�̃}�b�s���O���[�e�B���e�B�B���XML�ŋL�q���ꂽ�ݒ�t�@�C�����p�[�X���邽�߂ɗp���� |
DBCP | �f�[�^�x�[�X�̃R�l�N�V�����v�[�����O�T�[�r�X�����R���|�[�l���g |
FileUpload | Servlet��Web�A�v���P�[�V�����Ƀt�@�C���A�b�v���[�h�@�\��lj����邽�߂̃R���|�[�l���g |
HttpClient | �N���C�A���g�T�C�h�œ��삷��HTTP�v���g�R���̃t���[�����[�N�����R���|�[�l���g |
JXPath | JavaBeans�̖����K���ɏ]���悤��Java�̃N���X��XPath�̍\����p���đ��삷�邽�߂̃��[�e�B���e�B�����R���|�[�l���g |
Lang | java.lang�p�b�P�[�W�ɑ�����N���X�ɂ���Ȃ�@�\�������悤�ȃ��[�e�B���e�B�N���X�Q�����R���|�[�l���g |
Latka | HTTP�@�\�̎����e�X�e�B���O�̂��߂̃e�X�g�X�C�[�g |
Logging | ���܂��܂ȃ��M���OAPI�̎��������b�v���ė��p���邽�߂̃R���|�[�l���g |
Modeler | JMX�iJava Management Extensions�j�d�l�ƌ݊����̂��郂�f��MBean�����邽�߂̃��J�j�Y�������R���|�[�l���g |
Pool | �I�u�W�F�N�g�v�[�����O�@�\�����R���|�[�l���g |
Validator | ��M�f�[�^�̑Ó����������郁�\�b�h�ƌ��؋K����XML�t�@�C���Œ�`���邽�߂̃V���v���Ŋg���\�ȃt���[�����[�N�����R���|�[�l���g |
�@����3��ɂ킽���āA�����̃R���|�[�l���g�̂�����r�I���p��ʂ������Ǝv����Digester�ADBCP�APool�ACollections�ALang�ɂ��ăT���v���v���O�������g���Đ������Ă��������Ǝv���܂��i�Ȃ�Logging�ɂ��Ă͕ʂ̉�ɂ��������܂��j�B����ł��鍡���Digester�̐��������܂��B
�@�v���O�����̐ݒ�t�@�C���Ƃ�����java.util.Properties�N���X�œǂݍ��ނ��Ƃ̂ł���`���ł���v���p�e�B���X�g�i���X�g1�j���܂��v�������ԂƎv���܂��B���́u�L�[�Ɨv�f�̃y�A�v���̃t�@�C���͈������ȒP�ł��邽�ߏ��K�͂̃v���O�����ł͎�y�ɗp���邱�Ƃ��ł��܂����A���̔��ʍ\��������Ă��Ȃ����ߕ��G�Ȑݒ���L�q����K�v�̂����K�̓v���O�����ŗ��p����ɂ͕s�����ł���Ƃ����܂��B
���X�g1�@�v���p�e�B���X�g�̗� |
data-source.driverClass=com.mysql.jdbc.Driver |
�@�����ŁA������x�ȏ�̋K�͂̃v���O�����ł͍\�������f�[�^�`���ł���XML�iExtensible Markup Language�j��p���Đݒ�t�@�C�����L�q����̂���ʓI�ɂȂ��Ă���A�Ⴆ��Tomcat��Struts�Ȃǂł��ݒ�t�@�C����XML�ŋL�q����Ă��܂��B�����ō�����グ��T���v���v���O�����ł�XML�Őݒ�t�@�C�����L�q���邱�Ƃɂ��܂��B���X�g2�͍���̃T���v���v���O�����̂��߂̐ݒ�t�@�C���ł���A�f�[�^�x�[�X�ڑ��̂��߂̐ݒ��L�q����Ă��܂��B
�@�ʏ�XML�ŋL�q���ꂽ�t�@�C�������߂���ɂ�DOM�iDocument Object Model�j��SAX�iSimple API for XML Parsing�j��p���܂����A�����͋@�\���L�x�ł���ėp�I��API�ō\������Ă��邽�߁A�P���Ȃ��Ƃ��������ꍇ�ł�������x�ȏ�̗ʂ̃R�[�h���L�q����K�v������܂��B����ɑ��č�����グ��Digester�͂���ΐݒ�t�@�C����ǂݍ��ނ��Ƃɓ������Ă��邽�߁ASAX��DOM�Ŏg�p����ꍇ�ɔ�ׂĊi�i�ɏ��Ȃ��R�[�h�ʂŐݒ�t�@�C���̓ǂݍ��@�\���������邱�Ƃ��ł��܂��B
�@Digester�͂��Ƃ��Ƃ�Struts�ɂ�����XML�ŏ����ꂽ�ݒ�t�@�C����ǂݍ��ނ��߂ɊJ�����ꂽ���[�e�B���e�B�N���X�ł������A���݂ł�Jakarta Commons�̃R���|�[�l���g�Ƃ��Ē���Ă��܂��B
�@Digester�𗘗p����ƁAXML�t�@�C����Java�̃I�u�W�F�N�g�c���[�̌`�œǂݍ��ނ��Ƃ��ł��܂��BXML�t�@�C������I�u�W�F�N�g�c���[���\�z���邽�߂̎d�g�݂�m��ɂ́ADigester��������2�̋@�\�v�f�ɂ��Ēm��K�v������܂��B
�@Digester�𗘗p����ɂ́A�ΏۂƂȂ�XML�t�@�C���̂��ꂼ��̗v�f�i�^�O�j�ƃ}�b�`����悤�ȃp�^�[��������ƁA�}�b�`�����Ƃ��ɉ����s������\���v���Z�b�V���O���[���̑g�����炩���ߓo�^���Ă����K�v������܂��BDigester#parse()���\�b�h���Ă��ƁADigester�͓o�^����Ă���p�^�[���������XML�v�f�𒀎��ƍ����܂��B������XML�v�f���p�^�[��������Ƀ}�b�`�����ꍇ�A�p�^�[��������ɑΉ�����v���Z�b�V���O���[�������s���܂��B�v���Z�b�V���O���[���Ƃ��Ă̓I�u�W�F�N�g��������I�u�W�F�N�g�̃��\�b�h���Ăяo�����肷��ق��A�I�u�W�F�N�g�X�^�b�N�𑀍삷��悤�ȃ��[�����w��ł��܂��B�������ăI�u�W�F�N�g�X�^�b�N���e���|�����o�b�t�@�Ƃ��ė��p���I�u�W�F�N�g�c���[���\�z���Ă�����悤�ɂȂ��Ă��܂��B
�@�Ȃ��A�悭���p����悤�ȃv���Z�b�V���O���[���͂��炩���ߗp�ӂ���Ă��܂����A���[�U�[�����R�ɍ쐬���邱�Ƃ��ł��܂��B�v���Z�b�V���O���[���̍쐬���@�₠�炩���ߗp�ӂ���Ă���v���Z�b�V���O���[���ɂ��Ă�Jakarta�̃y�[�W�Ō��J����Ă����h�L�������g���Q�Ƃ��Ă��������B
�@���e���M����Digester�̍ŐV�o�[�W������1.3�i2003�N3�����݁j�ł��BDigester��Jakarta Commons�̃y�[�W����_�E�����[�h���Ă��������B�܂��A���̃o�[�W������Digester�𗘗p����ɂ͂ق��Ɉȉ���Commons�R���|�[�l���g���K�v�ł��B
�@�܂�Digester�͓�����SAX�p�[�T�𗘗p���Ă��܂��̂ŁAJava�v���b�g�t�H�[���Ƃ���J2SE�̃o�[�W����1.3�ȑO�����g���̏ꍇ�͕ʓrCrimson��Xerces�Ȃǂ�SAX�p�[�T��p�ӂ���K�v������܂��B
�@����ł̓T���v���v���O�����i���������A�̃\�[�X�t�@�C�����_�E�����[�h�ł��܂��j��p���ċ�̓I��Digester�̓�������Ă����܂��傤�i���X�g3�j�B
�@�T���v���v���O�����ł�Digester��p�������X�g2�̐ݒ�t�@�C����ǂݍ��݂܂��B�ǂݍ����ʁA<sample>�v�f�ɑΉ�����SampleConfig�N���X�i���X�g4�j�̃I�u�W�F�N�g��<data-source>�v�f�ɑΉ�����DataSourceConfig�N���X�i���X�g5�j�̃I�u�W�F�N�g���q�Ɏ��I�u�W�F�N�g�c���[����������܂��B
�@�T���v���v���O�������R���p�C�����ăN���X�p�X��K�ɐݒ肵�������ŃR�}���h���C���ɂāA
java net.skirnir.sample.Sample XML�t�@�C����
|
�Ƃ����R�}���h�����s���邱�ƂŁA���������I�u�W�F�N�g�c���[�����ݒ�l��\�������邱�Ƃ��ł��܂��B
�@�Ƃ���ŁADigester��p����XML�t�@�C����ǂݍ��ނ��߂̃��\�b�h��SampleConfig�̒���load()���\�b�h�ł��i���X�g6�j�B
���X�g6�@load()���\�b�h | ||||||||||||||||||||
public void load(File configFile)
"setDataSourceConfig",
"setProperty", 2);
0, "property");
1, "value");
} catch (IOException ex) { |
�@���̃��\�b�h�̓��e�ɂ��āA����ǂ��Đ������Ă����܂��傤�B
�@�i1�j��org.apache.commons.Digester�N���X�̃C���X�^���X�����܂��B�i2�j�ł͓ǂݍ���XML�t�@�C���̌����s��Ȃ����Ƃ�Digester�Ɏw�����Ă��܂��B�����s���ꍇ��Digester#setValidating(true)�Ƃ��܂��B�i3�j�ł͂��̃I�u�W�F�N�g�iSampleConfig�j���g���I�u�W�F�N�g�X�^�b�N�Ƀv�b�V�����Ă��܂��B
�@�����Digester�̏����ݒ�͊����ł��B�����i4�j�`�i8�j�̕����Ńv���Z�b�V���O���[����o�^���Ă����܂��B�i4�j�ł�sample/data-source�Ƃ����p�^�[��������ƃI�u�W�F�N�g�����邽�߂̃v���Z�b�V���O���[���iObjectCreateRule�j�̑g��o�^���Ă��܂��Bsample/data-source�Ƃ����p�^�[���������XML�t�@�C������<sample>�v�f�̒���<data-source>�v�f�ƃ}�b�`���܂��B
�@�܂�ObjectCreateRule�͑�2�����Ɏw�肵���N���X���̃N���X�̃C���X�^���X�����ăI�u�W�F�N�g�X�^�b�N�Ƀv�b�V������悤�ȃ��[���ł��B�]���āA�i4�j�̈Ӗ��́u<sample>�v�f�̒���<data-source>�v�f������������net.skirnir.sample.DatasSourceConfig�N���X�̃C���X�^���X�����ăI�u�W�F�N�g�X�^�b�N�Ƀv�b�V������v�Ƃ������ƂɂȂ�܂��B
�@���������i5�j�ł�sample/data-source�Ƃ����p�^�[��������ƃI�u�W�F�N�g�X�^�b�N���2�̃I�u�W�F�N�g���֘A�t���邽�߂̃v���Z�b�V���O���[���iSetNextRule�j�̑g��o�^���Ă��܂��BSetNextRule�̓I�u�W�F�N�g�X�^�b�N�̏ォ��2�Ԗځinext�j�̃I�u�W�F�N�g�ɂ��đ�2�����Ɏw�肵�����\�b�h���Ăяo���悤�ȃ��[���ł��B�Ăяo����郁�\�b�h�͑�3�����Ɏw�肵���N���X���̃N���X�̃C���X�^���X�������Ƃ��Ď��Ɖ��肳��A���ۂ̈����Ƃ��Ă̓I�u�W�F�N�g�X�^�b�N�̈�ԏ�ɂ���I�u�W�F�N�g���n����܂��B�]�����i5�j�̈Ӗ��́u<sample>�v�f�̒���<data-source>�v�f������������I�u�W�F�N�g�X�^�b�N�̏ォ��2�Ԗڂ̃I�u�W�F�N�g�ɂ���setDataSourceConfig()���\�b�h���Ăяo���B���̂Ƃ������Ƃ��Ă̓I�u�W�F�N�g�X�^�b�N�̈�ԏ�̃I�u�W�F�N�g��n���v�Ƃ������ƂɂȂ�܂��B
�@�Ō�̃v���Z�b�V���O���[�����i6�j�`(8)��CallMethodRule��CallParamRule�ł��B�����2�͑g�œ����܂��B�Ӗ��̓I�u�W�F�N�g�X�^�b�N�̈�ԏ�̃I�u�W�F�N�g�ɂ���CallMethodRule�̑�2�����Ŏw�肵�����\�b�h���Ăяo���܂��B�Ăяo�����\�b�h�̈����̌��͑�3�����Ŏw�肵�����ŁA���ۂ̈����Ƃ��Ă�CallParamRule�̑�3�����Ŏw�肵�������i�p�^�[���Ƀ}�b�`�����v�f�̑����ł��j�̒l���n����܂��B
�@���Ԗڂ̈����Ƃ��ēn����邩�͑�2�����Ŏw�肳��܂��B�]�����i6�j�`(8)�̈Ӗ��́u<sample>�v�f�̒���<data-source>�v�f�̒���<set-property>�v�f������������I�u�W�F�N�g�X�^�b�N�̈�ԏ�̃I�u�W�F�N�g�ɂ���setProperty�i<set-property>�v�f��property�����̒l�A<set-property>�v�f��value�����̒l�j���\�b�h���Ăяo���v�Ƃ������ƂɂȂ�܂��B
�@�ȏ�Ńv���Z�b�V���O���[���̓o�^�͊����ł��B���(9)�̂悤��Digester#parse()���\�b�h���Ăяo����XML�t�@�C���̓ǂݍ��݂��s���܂��BXML�t�@�C����ǂݍ��݁A�t�@�C���̐擪���珇�ɗv�f���o�^����Ă���p�^�[��������ƈ�v���邩�`�F�b�N����A��v���Ă���ꍇ�͑Ή�����v���Z�b�V���O���[�����Ăяo���܂��B
�@�p�^�[���ƍ��ƃv���Z�b�V���O���[���̎��s�@�\�ɂ���ăI�u�W�F�N�g�X�^�b�N�𑀍삷�邱�Ƃ�XML�t�@�C������Java�̃I�u�W�F�N�g�c���[������Digester�̎d�g�݂́A�ŏ��͕��G�Ɏv���邩������܂��A�����Ƃǂ�����XML�t�@�C����ǂݍ��ނɂ͂ǂ������p�^�[��������ƃv���Z�b�V���O���[����o�^���ׂ������v�������Ԃ悤�ɂȂ�܂��B�F��������Ў��ۂ�Digester��p����XML�t�@�C����ǂݍ��ރv���O�������쐬���邱�Ƃ�Digester�Ɋ���Ă����Ă��������B
�@����̓f�[�^�x�[�X�R�l�N�V�����̃v�[�����O���s�����߂�DBCP�Ɣėp�̃I�u�W�F�N�g�v�[�����O�@�\���\�z���邽�߂�Pool�ɂ��Đ������܂��B
���c���F�i�悱�� �����Ђ��j
�����H�Ƒ�w���ƌ�A�i���j���łɓ��ЁB���݁A�m�����f�B�A���{���g���[�ɂăR�~���j�e�B�x�[�X��L�V�X�e���̌����ɏ]���B���w�Z�̂��납��R���s���[�^�ɐG��A��ɃQ�[���v���O���~���O��ʂ���BASIC�A�A�Z���u�����͂��߂Ƃ��鑽���̌�����w�ԁBJava�ł�Jakarta�v���W�F�N�g�̐��ʕ��𗘗p���Ă������Ŏ��Web�A�v���P�[�V�����v���O���~���O�̖ʔ����Ɉ�����AJa-Jakarta�v���W�F�N�g�̊����ɍv���������ŃI�[�v���\�[�X��Java�x�[�X��Web�R���e���c�Ǘ��V�X�e���ł���Kvasir/Sora�̊J�����s���Ă���B
Copyright © ITmedia, Inc. All Rights Reserved.