<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>한국스프링사용자모임 KSUG</title>
		<link>http://www.ksug.org/</link>
		<description>한국스프링사용자모임(KSUG)은 스프링 프레임워크에 대한 정보를 공유하는 모임입니다.
질문과 답변은 [그룹스 포럼]을 이용하시고, 커뮤니티 참여는 [페이스북 포럼]을 이용하실 수 있습니다.</description>
		<language>ko</language>
		<pubDate>Mon, 07 May 2012 08:48:17 +0900</pubDate>
		<generator>Tistory 1.1 (http://www.tistory.com/)</generator>
		<managingEditor>영회</managingEditor>
		<image>
			<title>한국스프링사용자모임 KSUG</title>
			<url>http://cfile5.uf.tistory.com/image/1319294F4D73A5091EB33E</url>
			<link>http://www.ksug.org</link>
			<description>한국스프링사용자모임(KSUG)은 스프링 프레임워크에 대한 정보를 공유하는 모임입니다.
질문과 답변은 [그룹스 포럼]을 이용하시고, 커뮤니티 참여는 [페이스북 포럼]을 이용하실 수 있습니다.</description>
		</image>
		<item>
			<title>[공지] KSUG 세미나 2012 - Part1</title>
			<link>http://www.ksug.org/166</link>
			<description>&lt;p&gt;&lt;/p&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;&lt;div&gt;&lt;p style=&quot;text-align: center; clear: none; float: none; &quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:200px;&quot;&gt;&lt;img src=&quot;http://cfile26.uf.tistory.com/image/137B4D424FA6EC2E074181&quot; filemime=&quot;image/gif&quot; filename=&quot;KSUG.gif&quot; height=&quot;170&quot; width=&quot;200&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;봄이 시작되는 가정의 달 5월을 맞이하여 KSUG도 새로운 마음으로 시작합니다.&lt;/div&gt;&lt;div&gt;그 첫번째 세미나에 여러분을 초대합니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;im&quot; style=&quot;color: rgb(80, 0, 80); &quot;&gt;날짜 :&amp;nbsp;&lt;b&gt;&lt;font size=&quot;4&quot;&gt;&lt;font color=&quot;#ff0000&quot;&gt;2012년 05월 19일(토) 오전 11시 ~ 오후 2시&lt;/font&gt;&amp;nbsp;(3시간)&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;장소 :&amp;nbsp;&lt;b&gt;&lt;font size=&quot;4&quot; color=&quot;#ff0000&quot;&gt;토즈강남점&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;참가비 :&amp;nbsp;&lt;b&gt;&lt;font size=&quot;4&quot;&gt;만원&lt;/font&gt;&lt;/b&gt;&amp;nbsp;(실제 참석율을 높이기 위한 목적이며, 참석시 다시 돌려드립니다.)&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;&lt;div&gt;- 입금계좌 : 우리은행 1002-529-504921 예금주 이재일&lt;/div&gt;&lt;div&gt;- 참가신청 후 2일이내에 입금 부탁드립니다. 2일이 경과하면 대기자분께 참여기회가 넘어가게 됩니다.&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;각 세션은 25분씩 진행되며, 2세션마다 10분간 휴식시간이 있습니다.&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;(1) 스프링 시작하기 (고종봉) : 25분&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;- 스프링을 처음 시작하시는 분들을 위한 스프링 소개 시간&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;(2) 현장에서의 스프링 환경구축 사례 (최영목) : 25분&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;- 스프링 프레임워크가 현장에서 실제로 어떤 구성으로 구축되었는지 실제 프로젝트 사례를 소개&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;im&quot; style=&quot;color: rgb(80, 0, 80); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;&lt;font color=&quot;#222222&quot;&gt;(3)&amp;nbsp;&lt;/font&gt;스프링 MVC에서 web request 여행 (양완수) : 25분&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;- 요청에서 응답까지 스프링 mvc에서의 동작을 이해&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;&lt;div&gt;(4)스프링은 지금 (박용권) : 25분&lt;/div&gt;&lt;div class=&quot;im&quot; style=&quot;color: rgb(80, 0, 80); &quot;&gt;-&amp;nbsp;&lt;span style=&quot;color: rgb(34, 34, 34); &quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(34, 34, 34); &quot;&gt;스프링 3.1의 기능 소개와 MVC 변경사항에 대한 내용을 전달&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;(5) 토론 (정상혁) : 1시간&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;- 스프링에 대한 다양한 주제에 대해서 토론&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 14px; line-height: normal; background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;신청은 아래 링크에서 하실 수 있습니다.&lt;/div&gt;&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;&lt;font color=&quot;#222222&quot; face=&quot;arial, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 14px; line-height: normal;&quot;&gt;&lt;a href=&quot;http://onoffmix.com/event/6835&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://onoffmix.com/event/6835&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;&lt;font color=&quot;#222222&quot; face=&quot;arial, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 14px; line-height: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); &quot;&gt;&lt;font color=&quot;#222222&quot; face=&quot;arial, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 14px; line-height: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-166-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-166-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-166-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.ksug.org/166&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>공지/발표 자료</category>
			<author>스쿨쥐</author>
			<guid>http://www.ksug.org/166</guid>
			<comments>http://www.ksug.org/166#entry166comment</comments>
			<pubDate>Mon, 07 May 2012 06:28:22 +0900</pubDate>
		</item>
		<item>
			<title>[공지] 4월 벙개 모임 후기입니다.</title>
			<link>http://www.ksug.org/165</link>
			<description>&lt;p&gt;지난 4월 12일에 KSUG 번개 모임이 있었습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;번개의 가장 큰 목적은 그동안 큰 일을 도맡아서 수고를 해주신 박성철님께서 고종봉님께 큰 일꾼을 책임을 정식으로 이양하기 위한 이취임식을 진행하는 것이었습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none; &quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:400px;&quot;&gt;&lt;img src=&quot;http://cfile29.uf.tistory.com/image/1661B3354F8C87F3264EC6&quot; filemime=&quot;image/jpeg&quot; filename=&quot;SAM_3402.jpg&quot; height=&quot;266&quot; style=&quot;&quot; width=&quot;400&quot;/&gt;&lt;span class=&quot;cap1&quot; style=&quot;display:block;width:400px;&quot;&gt;ㄹㄹㄹ&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none; &quot;&gt;[큰 일을 덜게되신 박성철님의 밝은 미소 +_+]&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;참여해주신 분들이 모두 축하해주셨고, 고종봉님께서는 앞으로 KSUG를 이끌어나갈 방향을 제시하시면서 많은 분들의 기대감을 높여주셨습니다. 또한 박성철님께서도 고문으로 계속 활동하시면서 고종봉님께서 KSUG를 이끌어나가는 데 도와주시기로 하셨습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이번 모임에서 고종봉님의 의견을 간략하게 정리하면 다음과 같습니다.&lt;/p&gt;&lt;p&gt;1. 커뮤니티를 활성화하기 위해서 다양한 수단을 많이 도입하겠다. (다양한 채널, 자유로운 모임 구성 등)&lt;/p&gt;&lt;p&gt;2. 전문성을 살리기 위해서 레퍼런스 번역을 추진하겠다.&lt;/p&gt;&lt;p&gt;3. 기존 운영진에게 많은 권한을 위임하여 운영진에게도 자유롭게 추진할 수 있도록 하겠다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그리고 5월에 있을 KSUG 세미나에 대한 토론도 오갔습니다. 세미나 일정 및 내용, 발표자 등에 대해서 다양한 의견이 오갔으며, 이 부분에 있어서 박성철님께서 많은 의견을 주셨습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;마지막으로 객체지향, 스프링에 대한 기술적인 의견을 자유롭게 토론할 수 있는 시간이 있었습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none; &quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:400px;&quot;&gt;&lt;img src=&quot;http://cfile25.uf.tistory.com/image/14786D414F8C8B3C2637C3&quot; filemime=&quot;image/jpeg&quot; filename=&quot;SAM_3401.jpg&quot; height=&quot;266&quot; style=&quot;&quot; width=&quot;400&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;오랜만에 다들 기술적인 토론덕에 대화는 더 활발해졌으며, 어느덧 정해진 2시간이 모두 지나가게 되었습니다. 모임이 끝난 후 간단한 커피타임을 즐기면서 개인적인 이야기도 많이 하였고, 다들 즐거운 마음으로 모임을 즐기신 것 같습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;앞으로 KSUG의 많은 발전을 기대해봅니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;참고로 장소 협찬은 지난번과 동일하게 구글코리아에서 지원해주셨습니다. 감사합니다. (&lt;span style=&quot;color: rgb(0, 0, 0); font-family: arial, sans, sans-serif; font-size: 13px; line-height: normal; white-space: pre-wrap; &quot;&gt;장소 후원: 구글 코리아 http://goo.gl/P57iM)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;ps. 강남점 토즈 4층을 이용했는데 개인적으로는 알바생분이&amp;nbsp;괜찮았습니다. 흠흠 -_-;;; 참고하시길...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-165-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-165-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-165-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.ksug.org/165&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>공지/발표 자료</category>
			<author>스쿨쥐</author>
			<guid>http://www.ksug.org/165</guid>
			<comments>http://www.ksug.org/165#entry165comment</comments>
			<pubDate>Tue, 17 Apr 2012 06:20:02 +0900</pubDate>
		</item>
		<item>
			<title>[공지] 4월 벙개 모임 안내입니다.</title>
			<link>http://www.ksug.org/164</link>
			<description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none; &quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none; &quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:200px;&quot;&gt;&lt;img src=&quot;http://cfile26.uf.tistory.com/image/157CE6504F838E1E2B188A&quot; filemime=&quot;image/gif&quot; filename=&quot;KSUG.gif&quot; height=&quot;170&quot; width=&quot;200&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none; &quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 14px; text-align: left; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 14px; text-align: left; &quot;&gt;‎[공지] KSUG 벙개모임 합니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 14px; text-align: left; &quot;&gt;부담 없이 모여서 얼굴보는 자리가 되었으면 합니다. ^^; (간단한 신규 운영진 소개도 있을 예정입니다.)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 14px; text-align: left; &quot;&gt;이번주 목(4/12) 저녁 8시 강남입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 14px; text-align: left; &quot;&gt;참석 가능하신 분들, (그룹스 메일링이나 페이스북을 이용해) 손 들어주세요~!! (댓글로 남겨주세요)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 14px; text-align: left; &quot;&gt;감사합니다.ㅎ&lt;/span&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 14px; text-align: left; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 14px; text-align: left; &quot;&gt;&lt;span style=&quot;font-family: Helvetica; font-size: 14px; line-height: normal; -webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); &quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;장소/시간 공지드립니다.&amp;nbsp;&lt;/div&gt;&lt;div&gt;토즈 강남점(2호점 아니죠.ㅎ) 8시입니다. 모임이름은 KSUG입니다. 간단한 음료와 간식은 있겠지만 식사하고 오시는걸 추천드립니다. (일찍 오신 분들끼리 식사하셔도 좋구요.ㅎ )&lt;/div&gt;&lt;div&gt;참가의사 아직 안밝히셨더라도 시간 되시면 편하게 오시기 바랍니다.&lt;/div&gt;&lt;div&gt;감사합니다. 내일 뵙겠습니다.^^&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(0, 0, 0); line-height: normal; white-space: pre-wrap; font-family: Dotum, 돋움; font-size: 9pt; &quot;&gt;장소 후원: 구글 코리아 http://goo.gl/P57iM&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.ksug.org/164&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>공지/발표 자료</category>
			<author>머큐짱</author>
			<guid>http://www.ksug.org/164</guid>
			<comments>http://www.ksug.org/164#entry164comment</comments>
			<pubDate>Tue, 10 Apr 2012 10:17:07 +0900</pubDate>
		</item>
		<item>
			<title>Apache CXF 관련한 질문입니다.</title>
			<link>http://www.ksug.org/163</link>
			<description>&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/ksug/browse_thread/thread/dcdb9f31bb489590&quot;&gt;http://groups.google.com/group/ksug/browse_thread/thread/dcdb9f31bb489590&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(243, 197, 52); border-right-color: rgb(243, 197, 52); border-bottom-color: rgb(243, 197, 52); border-left-color: rgb(243, 197, 52); background-color: rgb(254, 254, 184); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;안녕하세요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;이클립스 헬리오스&amp;nbsp;&lt;/p&gt;&lt;p&gt;아파치 CXF 2.4&amp;nbsp;&lt;/p&gt;&lt;p&gt;톰캣 6.x&amp;nbsp;&lt;/p&gt;&lt;p&gt;기존에 만들어진 웹서비스 소스가 있는데, 여기에다 메소드를 좀 추가하고 싶은데 기존 프로젝트로는 웹서비스 생성할 때 자꾸 에러&amp;nbsp;&lt;/p&gt;&lt;p&gt;가 떠서 아주 새로 프로젝트를 만들고 기존 소스 코드를 가져왔습니다. 웹서비스 생성은 잘 되는데요. 기존 프로젝트에서 생성되어&amp;nbsp;&lt;/p&gt;&lt;p&gt;진 wsdl과 제가 생성한 wsdl의 네임스페이스가 다르게 지정이 되네요. 프로젝트명과 소스는 기존 서비스랑 완전히 동일한 구조&amp;nbsp;&lt;/p&gt;&lt;p&gt;에 모든 클래스 이름도 같고 모델 클래스와 서비스 클래스에 메소드만 2개 더 추가를 했습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Project name: clientServices&amp;nbsp;&lt;/p&gt;&lt;p&gt;Interface: CcahClientServicesSEI&amp;nbsp;&lt;/p&gt;&lt;p&gt;Service Class: CcahClientServicesImpl&amp;nbsp;&lt;/p&gt;&lt;p&gt;CcahClientServicesImpl.java를 가지고 웹서비스를 생성했습니다. &amp;nbsp;생성된 네임스페이스는 이렇습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;기존 프로젝트: &amp;lt;wsdl:definitions name=&quot;DaoImplService&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;신규 프로젝트: &amp;lt;wsdl:definitions name=&quot;CcahClientServicesImplService&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;이렇게 다르구요. wsdl를 비교해 봐도 중간 중간 다른 부분이 많은데, &amp;nbsp;동일한 프로젝트 환경에서 웹서비스를 생성했다면&amp;nbsp;&lt;/p&gt;&lt;p&gt;wsdl도 동일한 구조이어야 되지 않나요? 왜 그런지 잘 모르겠습니다. 혹시 어떤 부분을 체크해야 하는지 알려주시면 감사하겠습니&amp;nbsp;&lt;/p&gt;&lt;p&gt;다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;기존에 생성된 wsdl과 신규wsdl을 첨부합니다. 포트이름은 자바소스에서 어노테이션 값을 변경하여 일치시켰습니다. 하지만 나머&amp;nbsp;&lt;/p&gt;&lt;p&gt;지는 많이 달라 보입니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;OLD:&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;wsdl:definitions name=&quot;DaoImplService&quot; targetNamespace=&quot;http://&amp;nbsp;&lt;/p&gt;&lt;p&gt;dao.clientServices.ccah.lodestone.com/&quot; xmlns:wsdl=&quot;http://&amp;nbsp;&lt;/p&gt;&lt;p&gt;schemas.xmlsoap.org/wsdl/&quot; xmlns:tns=&quot;http://&amp;nbsp;&lt;/p&gt;&lt;p&gt;dao.clientServices.ccah.lodestone.com/&quot; xmlns:xsd=&quot;http://www.w3.org/&amp;nbsp;&lt;/p&gt;&lt;p&gt;2001/XMLSchema&quot; xmlns:soap=&quot;http://schemas.xmlsoap.org/wsdl/soap/&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:types&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;xs:schema elementFormDefault=&quot;unqualified&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;targetNamespace=&quot;http://dao.clientServices.ccah.lodestone.com/&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;version=&quot;1.0&quot; xmlns:tns=&quot;http://&amp;nbsp;&lt;/p&gt;&lt;p&gt;dao.clientServices.ccah.lodestone.com/&quot; xmlns:xs=&quot;http://www.w3.org/&amp;nbsp;&lt;/p&gt;&lt;p&gt;2001/XMLSchema&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;addEmergencyCoords&quot; type=&quot;tns:addEmergencyCoords&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;addEmergencyCoordsResponse&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;type=&quot;tns:addEmergencyCoordsResponse&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;addMediaNote&quot; type=&quot;tns:addMediaNote&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;addMediaNoteResponse&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;type=&quot;tns:addMediaNoteResponse&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;addMobileMessage&quot; type=&quot;tns:addMobileMessage&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;addMobileMessageResponse&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;type=&quot;tns:addMobileMessageResponse&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;deviceContactAdded&quot; type=&quot;tns:deviceContactAdded&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;deviceContactAddedResponse&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;type=&quot;tns:deviceContactAddedResponse&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;deviceEventAdded&quot; type=&quot;tns:deviceEventAdded&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;deviceEventAddedResponse&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;type=&quot;tns:deviceEventAddedResponse&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;getAdHocJourneyPlan&quot; type=&quot;tns:getAdHocJourneyPlan&quot;/&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;getAdHocJourneyPlanResponse&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;type=&quot;tns:getAdHocJourneyPlanResponse&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;getVersion&quot; type=&quot;tns:getVersion&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;getVersionResponse&quot; type=&quot;tns:getVersionResponse&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;gpsPing&quot; type=&quot;tns:gpsPing&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;gpsPingResponse&quot; type=&quot;tns:gpsPingResponse&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;verifyDeviceConfiguration&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;type=&quot;tns:verifyDeviceConfiguration&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;verifyDeviceConfigurationResponse&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;type=&quot;tns:verifyDeviceConfigurationResponse&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;deviceContactAdded&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;userName&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;googleId&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;action&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;title&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;deleteAssociatedJourneys&quot; type=&quot;xs:boolean&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;deviceContactAddedResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;return&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;type=&quot;tns:deviceActionAddedEvent&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;deviceActionAddedEvent&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexContent&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:extension base=&quot;tns:resultBase&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:extension&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexContent&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType abstract=&quot;true&quot; name=&quot;resultBase&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;errorCode&quot; type=&quot;xs:int&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;errorMsg&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;getAdHocJourneyPlan&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;userName&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;passwordHash&quot; type=&quot;xs:base64Binary&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;fromGoogleContactId&quot; type=&quot;xs:string&quot;/&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;toGoogleContactId&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;fromLat&quot; type=&quot;xs:double&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;fromLong&quot; type=&quot;xs:double&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;toLat&quot; type=&quot;xs:double&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;toLong&quot; type=&quot;xs:double&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;optimize&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;arriveBy&quot; type=&quot;xs:boolean&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;wheelchair&quot; type=&quot;xs:boolean&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;maxWalkDistance&quot; type=&quot;xs:int&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;mode&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;typeOfDay&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;timeOfDay&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;toDisplayName&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;fromDisplayName&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;getAdHocJourneyPlanResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;return&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;type=&quot;tns:adHocJourneyResponse&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;adHocJourneyResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexContent&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:extension base=&quot;tns:resultBase&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;fromLat&quot; type=&quot;xs:double&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;fromLong&quot; type=&quot;xs:double&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;toLat&quot; type=&quot;xs:double&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;toLong&quot; type=&quot;xs:double&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;urlQuery&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;jsonResonse&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;otpResponseInMillis&quot; type=&quot;xs:long&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:extension&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexContent&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;gpsPing&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;userName&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;passwordHash&quot; type=&quot;xs:base64Binary&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;mobilePhone&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;imsi&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;imei&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;latitude&quot; type=&quot;xs:double&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;longitude&quot; type=&quot;xs:double&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;gpsPingResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;return&quot; type=&quot;tns:gpsPingResult&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;gpsPingResult&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexContent&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:extension base=&quot;tns:resultBase&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;userName&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;latitude&quot; type=&quot;xs:double&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;longitude&quot; type=&quot;xs:double&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element maxOccurs=&quot;unbounded&quot; minOccurs=&quot;0&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;name=&quot;journeySyncDetails&quot; nillable=&quot;true&quot; type=&quot;tns:journeySyncDetail&quot;/&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element maxOccurs=&quot;unbounded&quot; minOccurs=&quot;0&quot; name=&quot;systemSettings&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;nillable=&quot;true&quot; type=&quot;tns:systemSetting&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:extension&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexContent&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;journeySyncDetail&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;JourneyId&quot; type=&quot;xs:long&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;JourneyName&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;JourneyDescription&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;JourneyData&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;JourneyNotes&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;JourneyActive&quot; type=&quot;xs:boolean&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;StartLoiName&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;StartLoiDescription&quot; type=&quot;xs:string&quot;/&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;StartLoiType&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;StartLoiGoogleContactId&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;StartLoiGoogleAddressId&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;EndLoiName&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;EndLoiDescription&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;EndLoiType&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;EndLoiGoogleContactId&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;EndLoiGoogleAddressId&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;systemSetting&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;name&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;value&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;type&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;binaryValue&quot; type=&quot;xs:base64Binary&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;addMediaNote&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;userName&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;mediaTitle&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;mediaTag&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;mediaType&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;mediaData&quot; type=&quot;xs:base64Binary&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;googleCalendarId&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;deviceNoteId&quot; type=&quot;xs:int&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;addMediaNoteResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;return&quot; type=&quot;tns:addMediaNoteResult&quot;/&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;addMediaNoteResult&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexContent&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:extension base=&quot;tns:resultBase&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:extension&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexContent&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;addEmergencyCoords&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;userName&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;passwordHash&quot; type=&quot;xs:base64Binary&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;mobilePhone&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;imsi&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;imei&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;latitude&quot; type=&quot;xs:double&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element name=&quot;longitude&quot; type=&quot;xs:double&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;addEmergencyCoordsResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;return&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;type=&quot;tns:addEmergencyCoordsResult&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;addEmergencyCoordsResult&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexContent&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:extension base=&quot;tns:resultBase&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:extension&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexContent&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;getVersion&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;getVersionResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;return&quot; type=&quot;tns:getVersionResult&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/xs:complexType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexType name=&quot;getVersionResult&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:complexContent&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:extension base=&quot;tns:resultBase&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:sequence&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;Title&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;Vendor&quot; type=&quot;xs:string&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;xs:element minOccurs=&quot;0&quot; name=&quot;Version&quot; ...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;글이 기나까 많이 잘리네요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;NEW:&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;wsdl:definitions name=&quot;DaoImplService&quot; targetNamespace=&quot;http://&amp;nbsp;&lt;/p&gt;&lt;p&gt;dao.clientServices.ccah.lodestone.com/&quot; xmlns:wsdl=&quot;http://&amp;nbsp;&lt;/p&gt;&lt;p&gt;schemas.xmlsoap.org/wsdl/&quot; xmlns:tns=&quot;http://&amp;nbsp;&lt;/p&gt;&lt;p&gt;dao.clientServices.ccah.lodestone.com/&quot; xmlns:xsd=&quot;http://www.w3.org/&amp;nbsp;&lt;/p&gt;&lt;p&gt;2001/XMLSchema&quot; xmlns:soap=&quot;http://schemas.xmlsoap.org/wsdl/soap/&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:types&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;schema xmlns=&quot;http://www.w3.org/2001/XMLSchema&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;import namespace=&quot;http://dao.clientServices.ccah.lodestone.com/&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;schemaLocation=&quot;ccahclientservicesimpl_schema1.xsd&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;/schema&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:types&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;getAdHocJourneyPlanResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;element=&quot;tns:getAdHocJourneyPlanResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;addMediaNote&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot; element=&quot;tns:addMediaNote&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;deviceEventAddedResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;element=&quot;tns:deviceEventAddedResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;gpsPing&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot; element=&quot;tns:gpsPing&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;getVersionResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot; element=&quot;tns:getVersionResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;addNote&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot; element=&quot;tns:addNote&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;loginCcahUserByUserNameResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;element=&quot;tns:loginCcahUserByUserNameResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;verifyDeviceConfiguration&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;element=&quot;tns:verifyDeviceConfiguration&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;addMobileMessageResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;element=&quot;tns:addMobileMessageResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;addNoteResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot; element=&quot;tns:addNoteResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;deviceEventAdded&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot; element=&quot;tns:deviceEventAdded&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;addEmergencyCoordsResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;element=&quot;tns:addEmergencyCoordsResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;addMobileMessage&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot; element=&quot;tns:addMobileMessage&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;deviceContactAdded&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot; element=&quot;tns:deviceContactAdded&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;getAdHocJourneyPlan&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot; element=&quot;tns:getAdHocJourneyPlan&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;addMediaNoteResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot; element=&quot;tns:addMediaNoteResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;loginCcahUserByUserName&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;element=&quot;tns:loginCcahUserByUserName&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;gpsPingResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot; element=&quot;tns:gpsPingResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;addEmergencyCoords&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot; element=&quot;tns:addEmergencyCoords&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;verifyDeviceConfigurationResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;element=&quot;tns:verifyDeviceConfigurationResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;deviceContactAddedResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;element=&quot;tns:deviceContactAddedResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:message name=&quot;getVersion&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:part name=&quot;parameters&quot; element=&quot;tns:getVersion&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:part&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:message&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:portType name=&quot;CcahClientServicesSEI&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;deviceContactAdded&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:input name=&quot;deviceContactAdded&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;message=&quot;tns:deviceContactAdded&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:input&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:output name=&quot;deviceContactAddedResponse&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;message=&quot;tns:deviceContactAddedResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:output&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:operation&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;getAdHocJourneyPlan&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:input name=&quot;getAdHocJourneyPlan&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;message=&quot;tns:getAdHocJourneyPlan&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:input&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:output name=&quot;getAdHocJourneyPlanResponse&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;message=&quot;tns:getAdHocJourneyPlanResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:output&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:operation&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;gpsPing&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:input name=&quot;gpsPing&quot; message=&quot;tns:gpsPing&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:input&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:output name=&quot;gpsPingResponse&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;message=&quot;tns:gpsPingResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:output&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:operation&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;addMediaNote&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:input name=&quot;addMediaNote&quot; message=&quot;tns:addMediaNote&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:input&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:output name=&quot;addMediaNoteResponse&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;message=&quot;tns:addMediaNoteResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:output&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:operation&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;addEmergencyCoords&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:input name=&quot;addEmergencyCoords&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;message=&quot;tns:addEmergencyCoords&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:input&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:output name=&quot;addEmergencyCoordsResponse&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;message=&quot;tns:addEmergencyCoordsResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:output&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:operation&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;getVersion&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:input name=&quot;getVersion&quot; message=&quot;tns:getVersion&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:input&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:output name=&quot;getVersionResponse&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;message=&quot;tns:getVersionResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:output&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:operation&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;addNote&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:input name=&quot;addNote&quot; message=&quot;tns:addNote&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:input&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:output name=&quot;addNoteResponse&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;message=&quot;tns:addNoteResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:output&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:operation&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;verifyDeviceConfiguration&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:input name=&quot;verifyDeviceConfiguration&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;message=&quot;tns:verifyDeviceConfiguration&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:input&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:output name=&quot;verifyDeviceConfigurationResponse&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;message=&quot;tns:verifyDeviceConfigurationResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:output&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:operation&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;loginCcahUserByUserName&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:input name=&quot;loginCcahUserByUserName&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;message=&quot;tns:loginCcahUserByUserName&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:input&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:output name=&quot;loginCcahUserByUserNameResponse&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;message=&quot;tns:loginCcahUserByUserNameResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:output&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:operation&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;addMobileMessage&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:input name=&quot;addMobileMessage&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;message=&quot;tns:addMobileMessage&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:input&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:output name=&quot;addMobileMessageResponse&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;message=&quot;tns:addMobileMessageResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:output&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:operation&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;deviceEventAdded&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:input name=&quot;deviceEventAdded&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;message=&quot;tns:deviceEventAdded&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:input&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:output name=&quot;deviceEventAddedResponse&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;message=&quot;tns:deviceEventAddedResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:output&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:operation&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;/wsdl:portType&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;wsdl:binding name=&quot;DaoImplServiceSoapBinding&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;type=&quot;tns:CcahClientServicesSEI&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;soap:binding style=&quot;document&quot; transport=&quot;http://&amp;nbsp;&lt;/p&gt;&lt;p&gt;schemas.xmlsoap.org/soap/http&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;deviceContactAdded&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:operation soapAction=&quot;&quot; style=&quot;document&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:input name=&quot;deviceContactAdded&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:body use=&quot;literal&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:input&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:output name=&quot;deviceContactAddedResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:body use=&quot;literal&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:output&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:operation&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;getAdHocJourneyPlan&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:operation soapAction=&quot;&quot; style=&quot;document&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:input name=&quot;getAdHocJourneyPlan&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:body use=&quot;literal&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:input&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:output name=&quot;getAdHocJourneyPlanResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:body use=&quot;literal&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:output&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:operation&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;gpsPing&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:operation soapAction=&quot;&quot; style=&quot;document&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:input name=&quot;gpsPing&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:body use=&quot;literal&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:input&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:output name=&quot;gpsPingResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:body use=&quot;literal&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:output&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:operation&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;addMediaNote&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:operation soapAction=&quot;&quot; style=&quot;document&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:input name=&quot;addMediaNote&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:body use=&quot;literal&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:input&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:output name=&quot;addMediaNoteResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:body use=&quot;literal&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:output&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:operation&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;addEmergencyCoords&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:operation soapAction=&quot;&quot; style=&quot;document&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:input name=&quot;addEmergencyCoords&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:body use=&quot;literal&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:input&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:output name=&quot;addEmergencyCoordsResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:body use=&quot;literal&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:output&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:operation&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;getVersion&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:operation soapAction=&quot;&quot; style=&quot;document&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:input name=&quot;getVersion&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:body use=&quot;literal&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:input&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:output name=&quot;getVersionResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:body use=&quot;literal&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:output&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:operation&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;addNote&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:operation soapAction=&quot;&quot; style=&quot;document&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:input name=&quot;addNote&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:body use=&quot;literal&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:input&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:output name=&quot;addNoteResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:body use=&quot;literal&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:output&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:operation&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;loginCcahUserByUserName&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:operation soapAction=&quot;&quot; style=&quot;document&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:input name=&quot;loginCcahUserByUserName&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:body use=&quot;literal&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:input&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wsdl:output name=&quot;loginCcahUserByUserNameResponse&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:body use=&quot;literal&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:output&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wsdl:operation&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wsdl:operation name=&quot;verifyDeviceConfiguration&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;soap:operation soapAction=&quot;&quot; style=&quot;document&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;죄송합니다. WSDL이 길어서 엉뚱하게 잘려서 OLD와 NEW가 바뀌었네요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;WSDL을 자동생성하면 자동생성 도구와 버전에 따라 다른 결과가 나올 수 있습&amp;nbsp;&lt;/p&gt;&lt;p&gt;니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;이를 보장하려면 정확히 동일한 상황에서 생성하셔야 하는데 어떤 요소가 해&amp;nbsp;&lt;/p&gt;&lt;p&gt;당 도구에 영향을 주는지 확실치 않으니 결국 WSDL 자동 생성은 동일한 결과&amp;nbsp;&lt;/p&gt;&lt;p&gt;를 보장받을 수 없다고 보시는 편이 맞습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;java2wsdl을 쓰셨는지 eclipse의 기능을 쓰셨는지 모르겠지만 일단 자동생성&amp;nbsp;&lt;/p&gt;&lt;p&gt;을 해서 사용중이라면 다시 생성하지 마시고 수정 사항을 수작업으로 반영하&amp;nbsp;&lt;/p&gt;&lt;p&gt;시라고 조언해드리고 싶습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;참고로, 스프링 웹 서비스(http://www.springsource.org/spring-web-&amp;nbsp;&lt;/p&gt;&lt;p&gt;services)라는 프로젝트가 있습니다. 이 프로젝트는 계약 선행 개발(또는 계&amp;nbsp;&lt;/p&gt;&lt;p&gt;약에 의한 개발)이라는 개념을 따르는데, 이 개념은 간단히 말해 WSDL을 계약&amp;nbsp;&lt;/p&gt;&lt;p&gt;문서로 보고 WSDL을 수작업으로 만든 후에 이 계약 사항을 기준으로 (자바)&amp;nbsp;&lt;/p&gt;&lt;p&gt;코드를 자동 또는 수작업으로 만들어 애플리케이션을 개발하도록 합니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;WSDL은 웹 서비스 제공자와 소비자 사이의 계약문서이므로 이를 동일한 결과&amp;nbsp;&lt;/p&gt;&lt;p&gt;가 보장되지 않는 자동 생성으로 만들면 계약으로서 의미가 없다고 보는 거죠.&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.ksug.org/163&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>그룹스Q&amp;A</category>
			<author>머큐짱</author>
			<guid>http://www.ksug.org/163</guid>
			<comments>http://www.ksug.org/163#entry163comment</comments>
			<pubDate>Fri, 06 Apr 2012 01:10:45 +0900</pubDate>
		</item>
		<item>
			<title>DAO(Repository)에서 발생한 예외처리 질문</title>
			<link>http://www.ksug.org/162</link>
			<description>&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/ksug/browse_thread/thread/51b06efb99fbf45e&quot;&gt;http://groups.google.com/group/ksug/browse_thread/thread/51b06efb99fbf45e&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(243, 197, 52); border-right-color: rgb(243, 197, 52); border-bottom-color: rgb(243, 197, 52); border-left-color: rgb(243, 197, 52); background-color: rgb(254, 254, 184); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;DAO(Repository)에서 발생한 예외를 Service에서 처리해야 할 지 아니면 Controller에서 처리해야 할 지&amp;nbsp;&lt;/p&gt;&lt;p&gt;의문입니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;아래 코드는 저 나름대로 예외 처리를 한 코드 입니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;MemberDAO에서 중복 예외를 발생 시켜 Controller에서 처리를 합니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;DuplicateMemberException는 DuplicateKeyException을 &amp;nbsp;의미 있는 uncheck&amp;nbsp;&lt;/p&gt;&lt;p&gt;exception 으로 전환 하기 위해 만든 Exception입니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;먼저 Member가 중복인지 아닌지 select로 검사 할 수 있지만 저는 중복을 예외를 처리하려고 했습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;즉, 중복 Member는 존재하지 않는다는 비즈니스 로직을 예외로 처리하는 것입니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;궁금한 점은 controller에서 비지니스 로직적인 것을 controller에서 예외처리를 해야 하는지&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;MemberService에서 또 try catch문으로 예외를 잡아서 처리하여 의미 있는 예외를 controller로&amp;nbsp;&lt;/p&gt;&lt;p&gt;throws 하거나&amp;nbsp;&lt;/p&gt;&lt;p&gt;아니면 return value를 true/fase 로 변경해야 하는 건지 궁금합니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;제 생각은 controller에서 예외처리를 하면 MemberService 쪽이 깔끔한(나이스)한 코드가 되어 좋아 보입니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;다른 예외 전략(처리)가 있다면 답변 부탁 드립니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;============== &amp;nbsp; Controller 에서 예외처리 &amp;nbsp; ====================&amp;nbsp;&lt;/p&gt;&lt;p&gt;========== &amp;nbsp;MemberDAO &amp;nbsp; =============================&amp;nbsp;&lt;/p&gt;&lt;p&gt;@Override&amp;nbsp;&lt;/p&gt;&lt;p&gt;public void insertMember(Member member) throws&amp;nbsp;&lt;/p&gt;&lt;p&gt;DuplicateMemberException {&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;try {&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sqlMapClientTemplate.insert(&quot;member.insertMember&quot;, member);&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;} catch (DuplicateKeyException e) {&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; throw new DuplicateMemberException(e);&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;}&amp;nbsp;&lt;/p&gt;&lt;p&gt;}&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;========== &amp;nbsp;MemberService &amp;nbsp; =============================&amp;nbsp;&lt;/p&gt;&lt;p&gt;@Override&amp;nbsp;&lt;/p&gt;&lt;p&gt;public void registMember(Member member) {&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;memberDAO.insertMember(member);&amp;nbsp;&lt;/p&gt;&lt;p&gt;}&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;========== &amp;nbsp;MemberController &amp;nbsp; =============================&amp;nbsp;&lt;/p&gt;&lt;p&gt;@RequestMapping(&quot;/member/registmember.do&quot;)&amp;nbsp;&lt;/p&gt;&lt;p&gt;public String registMember(Member member) {&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;try {&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; memberService.registMember(member);&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; return &quot;main&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;} catch (DuplicateMemberException e) {&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; return &quot;/member/viewregistmemberform&quot;;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;}&amp;nbsp;&lt;/p&gt;&lt;p&gt;}&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;============== &amp;nbsp; service에서 예외처리 &amp;nbsp; ====================&amp;nbsp;&lt;/p&gt;&lt;p&gt;========== &amp;nbsp;MemberService &amp;nbsp;=============================&amp;nbsp;&lt;/p&gt;&lt;p&gt;@Override&amp;nbsp;&lt;/p&gt;&lt;p&gt;public boolean registMember(Member member) {&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; try {&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; memberDAO.insertMember(member);&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; return true;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;} catch (DuplicateMemberException e) {&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; return false&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;}&amp;nbsp;&lt;/p&gt;&lt;p&gt;}&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;========== &amp;nbsp;MemberController &amp;nbsp; =============================&amp;nbsp;&lt;/p&gt;&lt;p&gt;@RequestMapping(&quot;/member/registmember.do&quot;)&amp;nbsp;&lt;/p&gt;&lt;p&gt;public String registMember(Member member) {&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; if(memberService.registMember(member) {&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; return &quot;main&quot;;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; } else {&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; return &quot;viewregistmemberform&quot;;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;&lt;p&gt;개인적으로는 @Controller에 try … catch 문이 나오는 것이 옳지 않다고 생각합니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Validator를 이용하여 검증을 서비스 계층으로 이동시키더라도 컨트롤러에서 BindingResult를 이용해 에러 결과를 뽑아보는&amp;nbsp;&lt;/p&gt;&lt;p&gt;방식이 에러처리에도 더욱 적절할 듯 싶네요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;form:errors&amp;gt;같은 스프링 EL문법도 사용가능해지구요.&amp;nbsp;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;저두 try catch가 controller에 있는게 보기 좋지 않습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Validation은 값(value)검증만 하는 것이라 생각했는데&amp;nbsp;&lt;/p&gt;&lt;p&gt;Exception 처리도 하는거 군요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;view(jsp)와 controller 사이에 값 검증만 해봐서 확 와닿지 않아서 그런데&amp;nbsp;&lt;/p&gt;&lt;p&gt;Validator로 Exception 처리하는 참조 사이트든가 처리하는 흐름만 좀 알려주 주시면 정말 감사 하겠습니다.&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;이 경우에는 컨터롤러에서 예외를 처리하는 쪽이 적절하다고 봅니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;MemberDAO에서는 DB Access 관련 예외인 DuplicateKeyException를 도메인 예&amp;nbsp;&lt;/p&gt;&lt;p&gt;외인 DuplicateMemberException로 잘 바꿔서 서비스에서 넘겼는데&amp;nbsp;&lt;/p&gt;&lt;p&gt;DuplicateKeyException 자체가 이미 구현 기술 의존성을 숨긴 추상화한 된 예&amp;nbsp;&lt;/p&gt;&lt;p&gt;외이나 도메인의 스프링 의존성도 줄인다는 관점에서는 의미 있는 작업 같습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;MemberService에서 메서드 시그니처에 throws DuplicateMemberException를 추&amp;nbsp;&lt;/p&gt;&lt;p&gt;가해서 명문화했으면 좋았겠습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;MemberController의 try-catch는 프레임워크 차원에서도 처리할 수 있지만 공&amp;nbsp;&lt;/p&gt;&lt;p&gt;통사항이 아니라 특정 업무의 워크플로에 해당하므로 컨트롤러에서 흐름을 제&amp;nbsp;&lt;/p&gt;&lt;p&gt;어하는 편이 좋다고 생각합니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;저는 왜 두 경우를 두고 고민하시는지 이해하지 못하겠네요. 서비스에서 처리&amp;nbsp;&lt;/p&gt;&lt;p&gt;하면 어떤 이득이 있는 거죠? 코드량이 늘었을 뿐 아니라 서비스의 반환값이&amp;nbsp;&lt;/p&gt;&lt;p&gt;어떤 의미인지 알려면 javadoc 같은 문서를 봐야만 분명해지는 번거로움까지&amp;nbsp;&lt;/p&gt;&lt;p&gt;생겼는데요.&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;음.. 저는 약간 생각이 다릅니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;개발자의 성향이나 전체 프레임워크 플로워에 따라서 다르겠지만&amp;nbsp;&lt;/p&gt;&lt;p&gt;되도록이면 Controller에서는 Exception 처리를 하지 않는 편이 좋다고 봅니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;제 경우에는&amp;nbsp;&lt;/p&gt;&lt;p&gt;View - Controller - Validation Logic- Business Logic - DAO&amp;nbsp;&lt;/p&gt;&lt;p&gt;이런식으로 많이 프로그래밍을 합니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;약간의 코드가 증가되기는 하지만&amp;nbsp;&lt;/p&gt;&lt;p&gt;전체적인 코드의 복잡도나 재활용면에서도 더 효율적으로 프로그래밍을 작성할 수 있는것 같습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;(물론 Class의 양이 많이 늘어나기는 하지만^^;;)&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;조금 더 자세히 설명을 드리자면..&amp;nbsp;&lt;/p&gt;&lt;p&gt;Validation Logic 부분은 Controller에서 로직을 처리하는 과정에서 필요한 데이터를 처리하는 부분입니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;데이터를 원하는 형태로 가공한다던지.. 실제로 Repository단까지 내려가지 않고 데이터를 거르는 부분입니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;그리고 Exception 처리는 Controller에서 되도록이면 하지 않는 편이라는 말은..&amp;nbsp;&lt;/p&gt;&lt;p&gt;오류를 처리하는 logic을 따로 작성하여 사용한다는 말입니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Controller에서 처리해도 상관없지만 *개인적으로는 너무 복잡하거나 지저분한 코드를 싫어해서*^^;;&amp;nbsp;&lt;/p&gt;&lt;p&gt;오류가 발생하면 오류를 따로 처리하고 처리할 수 없는 경우는 View단으로 정보를 던저거나 합니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;(처리한다는건 해당 오류를 페이지에 보이지 않고 정상적으로 처리하는 과정을 말합니다)&amp;nbsp;&lt;/p&gt;&lt;p&gt;저처럼 하는 방법도있다는 걸 참고하시라고 말씀드리는겁니다.^^;;&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;저는 Controller에서 try catch 문이 들어 가서 좋지 않다기 보다는&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Business Logic이 들어 가는게 아닌가해서 그렇게 생각 했습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Business Logic이 변경되면 Controller가 변경되는거 아닌가 해서요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Controller는 DispatcherServlet가 Service에 맵핑하는 중간 역할이라 생각 하고 있습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;2번째 방법은 true/false 합니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;만약 Business 로직이 Member 중복을 허용으로 바뀌면 Controller는 변경이 없을수 있겠죠(?)&amp;nbsp;&lt;/p&gt;&lt;p&gt;Exceptoin 처리 전략을 프레임 워크로 해결 할 수 있다면 if else 또한 사라질 수 있지 않을 까 했습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;이 방법은 저의 개인적인 생각입니다. 저두 지금 현재 구글링 하며 자료들을 찾고 있는 중이에요..&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;저같은 경우는 익셉션 처리를 SimpleMappingExceptionResolver 를 상속받아&amp;nbsp;&lt;/p&gt;&lt;p&gt;CustomSimpleMappingExceptionResolver 를 구현하여 예외처리를 한곳으로 모았습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;예외는 예외상황별로 runtime 익셉션을 상속받아 정의하였구요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;헤더타입(Accept)에 따라 결과(예외코드 및 오류 메시지)처리를 하였습니다. (html, json, xml)&amp;nbsp;&lt;/p&gt;&lt;p&gt;간혹 라이브러리에서 checked exception을 발생하는 메소드 같은 경우는 wrapping하여 runtime익셉션을&amp;nbsp;&lt;/p&gt;&lt;p&gt;발생하도록 하였습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;위구조에서는 Controller에서는 try{} catch{} 문이 필요없구요. 서비스나 다오 레이어에서는 상황에 따라 있을&amp;nbsp;&lt;/p&gt;&lt;p&gt;수 있지만 public method에서는 가독성을 위해서 지양하고 있습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;물론 예외가 아닌 정상플로우로 진행시켜야 하는 경우에는 컨트롤러에서 try catch가 필요할수도있겠으나 아직까지 그런 경우는&amp;nbsp;&lt;/p&gt;&lt;p&gt;없었습니다.(이 경우는 controller 보다는 서비스 레이어에서 처리하는게 낫지 않을까 생각합니다.&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;아 덧붙이면 이성현님 말씀대로 예외 발생은 모두 서비스단에서 하고 있습니다.(비즈니스 예외)&amp;nbsp;&lt;/p&gt;&lt;p&gt;저도 비즈니스 로직을 어디에 두어야 하나, (컨트롤러?, 서비스?, 컨트롤러 + 서비스?) 고민이 많았습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;현재는 사이트 성격에 따라 좀 달라질수 있다고 생각하여 그부분에서는 자유도를 두고 있습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;하지만 동일한 사이트에서는 일관성있어야 겠죠.&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;대충 비슷한 의미이긴 한데요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;요세 리팩토링에 심취해 있다보니. 살짝 코드가 변하는게 눈에 보이네요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;저라도 처음에는 Controller단에서 try{} catch(){}로 자연스럽게 DuplicateMemberException로 처리를&amp;nbsp;&lt;/p&gt;&lt;p&gt;했을거 같습니다. 하지만, 다른 컨트롤러에서도 같은 방식으로 try {}catch(){}로 로 감싸줬다면. 중복이&amp;nbsp;&lt;/p&gt;&lt;p&gt;발생하니 MemberService 에 메소드는 throws로 DuplicateMemberException선언이 되어 자연스럽게 흘러가지&amp;nbsp;&lt;/p&gt;&lt;p&gt;않았을까 하네요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;딱히 이건 이렇게 하라는것보다는 자연스럽게 어디다 놓으면 좋을지 정해지는면 되는게 아닌가 싶습니다.&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;원론적인,, 그리고 실제로도 좋은 설계가 될 수 있을 (것으로 생각하는) 개념을 말씀 드리면,&amp;nbsp;&lt;/p&gt;&lt;p&gt;DAO, Service, Controller 모두 각 단에서 적잘한 예외 처리를 해야 한다고 생각합니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;DAO에서는 DB Access가 주요 관심사항이니까,&amp;nbsp;&lt;/p&gt;&lt;p&gt;duplicated key가 발생하면,, (이건 DB 제약에 따라 발생하겠죠?) DuplicatedKeyException을 던지는게&amp;nbsp;&lt;/p&gt;&lt;p&gt;적절하다 보구요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Service 에서는, DAO의 DuplicatedKeyException을 받아서 DuplicatedMemberException을&amp;nbsp;&lt;/p&gt;&lt;p&gt;던져야 되구요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;(!! DB, DAO 관점에서는 key가 중복된거지,, 걔가 멤버인지,, 머시기인지는 모르는게 맞다고 봅니다. 걔가 멤버고,, 멤버는&amp;nbsp;&lt;/p&gt;&lt;p&gt;중복되면 안된다는 스펙은 서비스 로직에 해당된다고 봅니다.)&amp;nbsp;&lt;/p&gt;&lt;p&gt;그리고, Controller에서는,, 서비스 로직 처리 중에 예외가 발생했으니,, 컨트롤러 단의 예외 처리를&amp;nbsp;&lt;/p&gt;&lt;p&gt;해야 한다고 봅니다.. 기본적으로 예외가 발생하지 않는게 정상 플로우고,, 예외가 발생하면 발생&amp;nbsp;&lt;/p&gt;&lt;p&gt;예외별로 메시지를 표시한다고 하면,&amp;nbsp;&lt;/p&gt;&lt;p&gt;========== &amp;nbsp;MemberController &amp;nbsp; =============================&amp;nbsp;&lt;/p&gt;&lt;p&gt;@RequestMapping(&quot;/member/registmember.do&quot;)&amp;nbsp;&lt;/p&gt;&lt;p&gt;public String registMember(Member member) {&amp;nbsp;&lt;/p&gt;&lt;p&gt;try {&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; memberService.registMember(member);&amp;nbsp;&lt;/p&gt;&lt;p&gt;} catch(DuplicatedMemberException dme) {&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; alertAndReturn(&quot;이미 등록된 회원입니다.&quot;); // 화면 alert 처리&amp;nbsp;&lt;/p&gt;&lt;p&gt;} catch(Exception e) {&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; alertAndReturn(&quot;처리 중에 오류가 발생했습니다.&quot;); // 화면 alert 처리&amp;nbsp;&lt;/p&gt;&lt;p&gt;}&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;return &quot;success&quot;;&amp;nbsp;&lt;/p&gt;&lt;p&gt;}&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;spring mvc는 ExceptionResolver가 있잖아요(다른mvc모델도 비슷한게 있던데...). Controller에서는&amp;nbsp;&lt;/p&gt;&lt;p&gt;의미있는 Exception을 던지면 그만이죠. 그래야 내 Exception답지!!&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.ksug.org/162&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>그룹스Q&amp;A</category>
			<author>머큐짱</author>
			<guid>http://www.ksug.org/162</guid>
			<comments>http://www.ksug.org/162#entry162comment</comments>
			<pubDate>Fri, 06 Apr 2012 01:08:17 +0900</pubDate>
		</item>
		<item>
			<title>웹상에서 형상관리 기능구현 문의</title>
			<link>http://www.ksug.org/161</link>
			<description>&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/ksug/browse_thread/thread/7ecd8ad6f74dee6d&quot;&gt;http://groups.google.com/group/ksug/browse_thread/thread/7ecd8ad6f74dee6d&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(243, 197, 52); border-right-color: rgb(243, 197, 52); border-bottom-color: rgb(243, 197, 52); border-left-color: rgb(243, 197, 52); background-color: rgb(254, 254, 184); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;안녕하세요&amp;nbsp;&lt;/p&gt;&lt;p&gt;Spring 과는 무관한 질문이지만 문의 드립니다.^^&amp;nbsp;&lt;/p&gt;&lt;p&gt;jira 에서 버전관리 기능연동(ex. cvs/FishEye..)처럼, 웹 어플리케이션 상에서 게시판에 문서를 첨부했을 때&amp;nbsp;&lt;/p&gt;&lt;p&gt;버전관리기능을 구현해야 하는데 연동이 가능한지 모르겠습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;MS의 Share Point 에서도 버전관리 기능이 있더라구요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;SVN과 연동이 된다면 가장 좋겠습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;비슷한 구현 경험이 있으신분들의 조언을 듣고자 합니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;감사합니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;&lt;p&gt;화면(jsp)에서 서버로 파일을 업로드하면 해당 파일을 svn커넥터 api로 svn서버로 전송할수 있습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;전송 후(commit) 화면에 commit된 파일을 보여주면 되죠. 당연 버젼관리 되구요&amp;nbsp;&lt;/p&gt;&lt;p&gt;문제는 화면을 다 만들어줘야겠죠.&amp;nbsp;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.ksug.org/161&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>그룹스Q&amp;A</category>
			<author>머큐짱</author>
			<guid>http://www.ksug.org/161</guid>
			<comments>http://www.ksug.org/161#entry161comment</comments>
			<pubDate>Fri, 06 Apr 2012 01:05:07 +0900</pubDate>
		</item>
		<item>
			<title>.beabuild.txt 파일에 대해 궁금합니다.</title>
			<link>http://www.ksug.org/160</link>
			<description>&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/ksug/browse_thread/thread/fdca8c380e66e28b&quot;&gt;http://groups.google.com/group/ksug/browse_thread/thread/fdca8c380e66e28b&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(243, 197, 52); border-right-color: rgb(243, 197, 52); border-bottom-color: rgb(243, 197, 52); border-left-color: rgb(243, 197, 52); background-color: rgb(254, 254, 184); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;웹로직을 이클립스에서 연동하여 테스트 중입니다 몇일간 너무나 헤매여서 지하철에서 답답한맘 이기지못하고 남깁니다&amp;nbsp;&lt;/p&gt;&lt;p&gt;maven으로 그냥 war로 빌드하여 웹로직 콘솔에서 디플로이하면 잘됩니다&amp;nbsp;&lt;/p&gt;&lt;p&gt;하지만 이클립스 서버탭에서 해당모듈을 디플로이하면 ClassNotFoundExcept 이 떨어집니다&amp;nbsp;&lt;/p&gt;&lt;p&gt;몇일헤맨끝에 workspace 아래 plugin 쪽에 아래 .beabuild.txt 라는파일이 실제 소스위치를 매핑하고 있다는건 알아냈습니다&amp;nbsp;&lt;/p&gt;&lt;p&gt;근데 이상하게 거기에 jar 파일들은 하나도 등록안되어있네요.. 그것때매 클래스를 못찾는것같은데 ..&amp;nbsp;&lt;/p&gt;&lt;p&gt;같은 프로젝트를 체크아웃받은 동료pc의 그파일에는 필요한 jar들이 모두 매핑이되어 있더군요&amp;nbsp;&lt;/p&gt;&lt;p&gt;물론 저랑 이클립스 웹로직 메이븐로컬리파지터리 위치 등이 약간씩 다릅니다만..&amp;nbsp;&lt;/p&gt;&lt;p&gt;어떤 이유일까요???&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;이클립스에서 SpringMVC 테스트(JUnit) 환경 구축하기 &amp;lt;http://springmvc.egloos.com/438345&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;제가 예전에 했던 고민들이네요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;답만 말하자면 프로젝트 - 특성 - Deployment Assembly에&amp;nbsp;&lt;/p&gt;&lt;p&gt;Maven Dependencies가 추가되있는지 확인해보세요.&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;&lt;p&gt;강종욱님이 설명하신 내용이 정리된 불로그네요&amp;nbsp;&lt;/p&gt;&lt;p&gt;http://beans9.tistory.com/m/103&amp;nbsp;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.ksug.org/160&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>그룹스Q&amp;A</category>
			<author>머큐짱</author>
			<guid>http://www.ksug.org/160</guid>
			<comments>http://www.ksug.org/160#entry160comment</comments>
			<pubDate>Fri, 06 Apr 2012 01:04:05 +0900</pubDate>
		</item>
		<item>
			<title>시큐리티3 로그인시 바로이전에 접근했던 페이지로 이동이 가능한가요?</title>
			<link>http://www.ksug.org/159</link>
			<description>&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/ksug/browse_thread/thread/f2ba3cd10abedd3b&quot;&gt;http://groups.google.com/group/ksug/browse_thread/thread/f2ba3cd10abedd3b&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(243, 197, 52); border-right-color: rgb(243, 197, 52); border-bottom-color: rgb(243, 197, 52); border-left-color: rgb(243, 197, 52); background-color: rgb(254, 254, 184); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;안녕하세요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;스프링 시큐리티 3.1버전으로 프로젝트를 진행중인데 모르는부분이 생겨 질문드립니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;권한이 없는 URL로 접근할경우 로그인페이지로 이동하게 되있는데&amp;nbsp;&lt;/p&gt;&lt;p&gt;여기서 로그인한뒤에 좀전의 권한이 없었던 URL로 다시 보낼려면 어떻게 해야되나요??&amp;nbsp;&lt;/p&gt;&lt;p&gt;시큐리티는 너무어려운거 같아요.ㅠㅠ&amp;nbsp;&lt;/p&gt;&lt;p&gt;도움좀 부탁드려요.&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;오래간만에 답변을 올려 봅니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;우선 해결 방안을 올리기 전에 저는 security 를 조금 수정해서 사용하고 있음으로 감안하고 들어 주십시요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;하지만 해결 아이디어 정도는 드릴수도 있을것 같아서 글을 올립니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;1. 권한이 없어서 login page로 전달할때 이전 request를 pageContext에서 가지고 있을 것입니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;login page로 이동할때 최초 request를 유지하고 있을 경우 해당 request의 정보에서&amp;nbsp;&lt;/p&gt;&lt;p&gt;좀전에 요청한 url을 다시 받을수 있겠죠...&amp;nbsp;&lt;/p&gt;&lt;p&gt;2. 권한없는 page에서 login page로 이동할때 redirect: 하지 않고 forward: 하면.&amp;nbsp;&lt;/p&gt;&lt;p&gt;브리우져의 url에는 최초에 요청한 url이 그대로 남아 있습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;해당 정보를 활용해도 되겠죠..&amp;nbsp;&lt;/p&gt;&lt;p&gt;그럼 도움이 되었기를 바랍니다.&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(243, 197, 52); border-right-color: rgb(243, 197, 52); border-bottom-color: rgb(243, 197, 52); border-left-color: rgb(243, 197, 52); background-color: rgb(254, 254, 184); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;먼저 답변달아주셔서 감사합니다!&amp;nbsp;&lt;/p&gt;&lt;p&gt;제가 아직 시큐리티를 다루는게 미숙해서&amp;nbsp;&lt;/p&gt;&lt;p&gt;뭔가 아~! 하면서도 어떻게 해야될지를 모르겠어요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;좀더 설명을 붙여서 다시한번 질문드리겠습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;form-login login-page='/common/user/login.do'&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;login-processing-url=&quot;/j_spring_security_check&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;default-target-url='/common/user/login_success.do'&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;authentication-failure-url=&quot;/common/user/login.do?error=1&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;always-use-default-target='true' /&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;시큐리티 설정을 이렇게 해놨습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;http://localhost:8080/center/main.do ( 허용 )&amp;nbsp;&lt;/p&gt;&lt;p&gt;http://localhost:8080/center/report/report.do (미허용)&amp;nbsp;&lt;/p&gt;&lt;p&gt;메인페이지에서 report.do 링크를 클릭하게되면 권한이 없는페이지라서&amp;nbsp;&lt;/p&gt;&lt;p&gt;설정에 있는 /common/user/login.do 가 호출되는데&amp;nbsp;&lt;/p&gt;&lt;p&gt;request에 있는 referer를 뽑아봐도 report.do 가 아닌 main.do 를 가지고있습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;위의 설정처럼 해서는 중간에 인증이 불허된 report.do의 정보를 가져오는건 안되는건가요?&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;default-target-url='/common/user/login_success.do' 값과&amp;nbsp;&lt;/p&gt;&lt;p&gt;always-use-default-target='true' 값을 제거하시면 원하시는 행동을 할거에요.&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(243, 197, 52); border-right-color: rgb(243, 197, 52); border-bottom-color: rgb(243, 197, 52); border-left-color: rgb(243, 197, 52); background-color: rgb(254, 254, 184); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;오전에 출근하자마자 테스트해봤는데..&amp;nbsp;&lt;/p&gt;&lt;p&gt;형민님이랑 용권님 방법을 동시에 적용하면 될거같기도 한데..&amp;nbsp;&lt;/p&gt;&lt;p&gt;또 막혀버렸어요ㅠ_ㅠ&amp;nbsp;&lt;/p&gt;&lt;p&gt;먼저 용권님이 얘기주신데로 하니 로그인이후에 제가 원한 이전페이지로 돌아가긴하는데&amp;nbsp;&lt;/p&gt;&lt;p&gt;default-target-url='/common/user/login_success.do'&amp;nbsp;&lt;/p&gt;&lt;p&gt;제가 위의 저쪽 메서드에서 필요한정보를 session을 등록해놨는데&amp;nbsp;&lt;/p&gt;&lt;p&gt;그부분만 처리가 되면될거같아요..&amp;nbsp;&lt;/p&gt;&lt;p&gt;형민님이 얘기주신 이전 페이지의 정보를 login_success.do에서 가져오는 방법을 찾아내던지&amp;nbsp;&lt;/p&gt;&lt;p&gt;용권님이 얘기주신 방법을 사용하면서 로그인성공시의 이벤트를 잡아서 세션을 추가해주면 되지않을까라고 고민을하면서&amp;nbsp;&lt;/p&gt;&lt;p&gt;답변을 작성할려구 들어왔어요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;감사합니다&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;로그인완료 후 저렇게 처리 하지 마시고&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;form-login login-page=&quot;/main/loginPage&quot; login-processing-url=&quot;/&amp;nbsp;&lt;/p&gt;&lt;p&gt;login&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; always-use-default-target=&quot;false&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; authentication-success-handler-ref=&quot;authenticationSuccessHandler&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;-- 이부분&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; authentication-failure-url=&quot;/main/loginFailure&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;저렇게 authentication-success-handler-ref 이부분을 등록해 주세요&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;beans:bean id=&quot;authenticationSuccessHandler&quot; &amp;nbsp;class=&quot;클래스 위치 &quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;이 클래스 내용은&amp;nbsp;&lt;/p&gt;&lt;p&gt;public class CustomAuthenticationSuccessHandler extends&amp;nbsp;&lt;/p&gt;&lt;p&gt;SavedRequestAwareAuthenticationSuccessHandler implements&amp;nbsp;&lt;/p&gt;&lt;p&gt;AuthenticationSuccessHandler{&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void onAuthenticationSuccess(HttpServletRequest&amp;nbsp;&lt;/p&gt;&lt;p&gt;request, HttpServletResponse response, Authentication authentication)&amp;nbsp;&lt;/p&gt;&lt;p&gt;throws IOException, ServletException {&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 로그인 완료후 처리할 내용&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; super.onAuthenticationSuccess(request, response, authentication);&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&amp;nbsp;&lt;/p&gt;&lt;p&gt;}&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이런식으로 클래스를 만들어 주시면&amp;nbsp;&lt;/p&gt;&lt;p&gt;따로 저런식으로 사용 안하셔도 로그인 완료 후 처리가 됩니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;SavedRequestAwareAuthenticationSuccessHandler 이걸 상속 받으시면 완료 후 이전 URL로 이&amp;nbsp;&lt;/p&gt;&lt;p&gt;동합니다.&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.ksug.org/159&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>그룹스Q&amp;A</category>
			<author>머큐짱</author>
			<guid>http://www.ksug.org/159</guid>
			<comments>http://www.ksug.org/159#entry159comment</comments>
			<pubDate>Fri, 06 Apr 2012 01:02:48 +0900</pubDate>
		</item>
		<item>
			<title>ant javac task를 이용하여 compile 시 class 파일 사이즈가 다른 문제</title>
			<link>http://www.ksug.org/158</link>
			<description>&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/ksug/browse_thread/thread/0023153d66518893&quot;&gt;http://groups.google.com/group/ksug/browse_thread/thread/0023153d66518893&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(243, 197, 52); border-right-color: rgb(243, 197, 52); border-bottom-color: rgb(243, 197, 52); border-left-color: rgb(243, 197, 52); background-color: rgb(254, 254, 184); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;ant의 javac로 컴파일하여 생성된 class파일과 로컬 &amp;nbsp;이클립스에서 컴파일 된 class 파일이 서로 사이즈가 다른 현상이 있어&amp;nbsp;&lt;/p&gt;&lt;p&gt;질문 올립니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;모든 class파일의 사이즈가 다른 것이 아닌 특정 클래스 몇 개들이 사이즈가 다르네요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;이상한 점은 다른 사이즈를 가진 class 파일을 decompile 했을 때 안의 코드는 동일하며 그렇다고 jvm버전이 다른 것도&amp;nbsp;&lt;/p&gt;&lt;p&gt;아닙니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;okjsp에 문의 해봤더니 debug 옵션을 주면 그럴 수도 있다고는 하셨는데 debug 옵션 및 기타 다른 옵션들을 모두 삭제하고&amp;nbsp;&lt;/p&gt;&lt;p&gt;테스트를 해봐도 동일한 현상이 발생하네요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;혹시 이런 현상에 대해서 경험해 보신 분 계시면 답변 좀 부탁드리겠습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;*ant javac 설정 내용*&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;target name=&quot;build&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;echo message=&quot;|-------------------------------------------------------------| &quot; /&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;echo message=&quot;| BUILD START &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | &quot; /&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;echo message=&quot;|-------------------------------------------------------------| &quot; /&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;copy todir=&quot;${app_home_dir}&quot; overwrite=&quot;true&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;fileset dir=&quot;${project_home}/WebContent&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;include name=&quot;**/*.jsp&quot; /&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;include name=&quot;**/*.xml&quot; /&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;include name=&quot;**/*.jar&quot; /&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/fileset&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/copy&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;copy todir=&quot;${app_home_dir}/WEB-INF/classes&quot; overwrite=&quot;true&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;fileset dir=&quot;${project_home}/conf&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;exclude name=&quot;**/.svn&quot; /&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/fileset&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/copy&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;javac&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; target=&quot;${java.target}&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; debug=&quot;on&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nowarn=&quot;true&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; deprecation=&quot;off&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; listfiles=&quot;true&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; failonerror=&quot;true&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; srcdir=&quot;${project_home}/src&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; destdir=&quot;${app_home_dir}/WEB-INF/classes&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; encoding=&quot;${java.compile.encoding}&quot;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; includeantruntime=&quot;false&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;include name=&quot;**/*.java&quot; /&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;classpath&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;path refid=&quot;common_classpath&quot; /&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;fileset dir=&quot;${app_classpath}/WebContent/WEB-INF/lib&quot;&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;include name=&quot;*.jar&quot;/&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/fileset&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/classpath&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/javac&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/target&amp;gt;&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;&lt;p&gt;eclipse는 ecj라는 증분(incremental) 자바 컴파일러를 따로 가지고 있습니&amp;nbsp;&lt;/p&gt;&lt;p&gt;다. 변경된 소스와 이에 관련된 소스만 추적해서 컴파일하는 컴파일러인데&amp;nbsp;&lt;/p&gt;&lt;p&gt;javac와 동일한 결과가 나오지 않을 수도 있어요. 최적화 알고리즘이 다를테&amp;nbsp;&lt;/p&gt;&lt;p&gt;니까요.&amp;nbsp;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;저도 옛날에, 개발자 한명이 Eclipse에서 컴파일해서 서버로 배포하던 시절에, Eclipse의 컴파일 결과와 javac로 한게&amp;nbsp;&lt;/p&gt;&lt;p&gt;달라서 신기해했던 경험이 있습니다..&amp;nbsp;&lt;/p&gt;&lt;p&gt;정확히 어떤 문제였는지는 가물가물한데, 찾아보니 serialVersionUID 관련해서도 문제가 생길수 있다고 하네요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;http://wiki.eclipse.org/FAQ_Why_does_the_Eclipse_compiler_create_a_di...&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.ksug.org/158&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>그룹스Q&amp;A</category>
			<author>머큐짱</author>
			<guid>http://www.ksug.org/158</guid>
			<comments>http://www.ksug.org/158#entry158comment</comments>
			<pubDate>Fri, 06 Apr 2012 01:00:56 +0900</pubDate>
		</item>
		<item>
			<title>cp /dev/null &gt; was_log.out 이거 안전한건가요?</title>
			<link>http://www.ksug.org/157</link>
			<description>&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/ksug/browse_thread/thread/f58db839ea38e311&quot;&gt;http://groups.google.com/group/ksug/browse_thread/thread/f58db839ea38e311&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(243, 197, 52); border-right-color: rgb(243, 197, 52); border-bottom-color: rgb(243, 197, 52); border-left-color: rgb(243, 197, 52); background-color: rgb(254, 254, 184); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;was나 서버데몬을 죽이지 않고 로그파일을 초기화하기 위해&amp;nbsp;&lt;/p&gt;&lt;p&gt;cp /dev/null &amp;gt; log_file&amp;nbsp;&lt;/p&gt;&lt;p&gt;혹은&amp;nbsp;&lt;/p&gt;&lt;p&gt;cat /dev/null &amp;gt; log_file&amp;nbsp;&lt;/p&gt;&lt;p&gt;이런거 하는 경우가 있는거 같은데...&amp;nbsp;&lt;/p&gt;&lt;p&gt;이거 안전한 행위인지.. 궁금하네요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;예전에 잠깐 어디선가 테스트해본적 있었던거 같은데(어떤 os에서 어떤 데몬이 만들어내는 로그인지 기억이 안남 ^^)&amp;nbsp;&lt;/p&gt;&lt;p&gt;실제 파일은 초기화가 되는데 파일사이즈는 원래 사이즈를 그대로 가지고 있었던 기억이 있는데...&amp;nbsp;&lt;/p&gt;&lt;p&gt;혹시 경험 있으신 분들 있나요?&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;파일사이즈 0로 만들기위해 자주 사용하는 방식입니다. 문제 없어요.&amp;nbsp;&lt;/p&gt;&lt;p&gt;cp -f /dev/null log_file&amp;nbsp;&lt;/p&gt;&lt;p&gt;From. Ted Cho.&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;null copy는 물리적인 디스크 사용 율 (du )을 줄일 수는 없으나 , 로그파일의 내용은 줄일수 있습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;결론적으로 로그는 0바이트로 보이나 물리적인 디스크 사용율은 프로세스를 내려야만 처리가 됩니다&amp;nbsp;&lt;/p&gt;&lt;p&gt;그래서 was 기동을 nohup 으로 기동하고, 주기로 로그를 로테이션합니다(펄 이용)&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 137, 67); border-right-color: rgb(254, 137, 67); border-bottom-color: rgb(254, 137, 67); border-left-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;p&gt;물리적 디스크의 기존사용하는 어드레스를 가지고 있으며 0부터 기존 어드레스까지는 못쓰게 하면서 기존이후 부터남긴다고 하네요 ^^*&amp;nbsp;&lt;/p&gt;&lt;p&gt;즉, 널카피는 내가 지금 까지 온 거리를 제외하고 현재 위치부터 0으로 다시 시작하는거죠 ^^* 비유가 이상하지만 쩝 ....&amp;nbsp;&lt;/p&gt;&lt;p&gt;간단히 df -k, du -k 한결과 기록 후&amp;nbsp;&lt;/p&gt;&lt;p&gt;null copy 하구&amp;nbsp;&lt;/p&gt;&lt;p&gt;다시 df -k, du -k 해보시면&amp;nbsp;&lt;/p&gt;&lt;p&gt;실제 파일사이즈는 0으로 되나 du -k 값은 다름을 아실 수 있을 겁니다 ^^*&amp;nbsp;&lt;/p&gt;&lt;p&gt;물론 모든 OS 에서 검증한 내용은 아닙니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;그래서 저 같은경우는 로그는 전혀 다른 디스크 볼륨으로 주기 로테이션 하도록 합니다 ^^*&amp;nbsp;&lt;/p&gt;&lt;p&gt;WAS의 로그 full 로 인한 문제가 없도록 위함입니다 ^^* 도움이되셨길 ....&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=www.ksug.org/157&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>그룹스Q&amp;A</category>
			<author>머큐짱</author>
			<guid>http://www.ksug.org/157</guid>
			<comments>http://www.ksug.org/157#entry157comment</comments>
			<pubDate>Fri, 06 Apr 2012 00:59:38 +0900</pubDate>
		</item>
	</channel>
</rss>
