2013-08-27 3 views
2

간단한 hello world 웹 서비스를 사용하려고합니다. WSDL2CPP를 사용하여 wsdl 파일에서 서비스 코드를 생성했습니다. 이 빌드 및 서비스 목록에서 위로 표시 localhost:8080/axis2/servicesaxis2_http_server가 서비스 라이브러리를로드하지 못했습니다.

이제 서비스에 액세스 할 수있는 간단한 클라이언트를 만들었습니다. 나는 웹 서비스에 요청을 할 때, 나는 나의 axis2.log에 다음을 참조하십시오


[Tue Aug 27 09:50:31 2013] [debug] http_worker.c(186) Client HTTP version HTTP/1.1 
[Tue Aug 27 09:50:31 2013] [debug] soap_builder.c(882) identified soap version is soap12 
[Tue Aug 27 09:50:31 2013] [debug] phase.c(202) Invoke the handler request_uri_based_dispatcher within the phase Transport 
[Tue Aug 27 09:50:31 2013] [debug] req_uri_disp.c(97) Checking for service using target endpoint address : http://127.0.0.1:8080/axis2/services/Hello_Service 
[Tue Aug 27 09:50:31 2013] [debug] req_uri_disp.c(117) Service found using target endpoint address 
[Tue Aug 27 09:50:31 2013] [debug] phase.c(202) Invoke the handler AddressingInHandler within the phase Transport 
[Tue Aug 27 09:50:31 2013] [info] Starting addressing in handler 
[Tue Aug 27 09:50:31 2013] [debug] phase.c(202) Invoke the handler addressing_based_dispatcher within the phase Transport 
[Tue Aug 27 09:50:31 2013] [debug] phase.c(202) Invoke the handler rest_dispatcher within the phase Dispatch 
[Tue Aug 27 09:50:31 2013] [debug] phase.c(202) Invoke the handler soap_message_body_based_dispatcher within the phase Dispatch 
[Tue Aug 27 09:50:31 2013] [debug] soap_body_disp.c(200) Checking for operation using SOAP messagebody's first child's local name : sayHello 
[Tue Aug 27 09:50:31 2013] [debug] soap_body_disp.c(207) Operation found using SOAP message body's first child's local name 
[Tue Aug 27 09:50:31 2013] [debug] phase.c(202) Invoke the handler soap_action_based_dispatcher within the phase Dispatch 
[Tue Aug 27 09:50:31 2013] [debug] phase.c(202) Invoke the handler dispatch_post_conditions_evaluator within the phase PostDispatch 
[Tue Aug 27 09:50:31 2013] [debug] phase.c(202) Invoke the handler context_handler within the phase PostDispatch 
[Tue Aug 27 09:50:31 2013] [error] class_loader.c(152) Loading shared library ..//services/Hello_Service/libHello_Service.so Failed. DLERROR IS ..//services/Hello_Service/libHello_Service.so: undefined symbol: _ZN7wso2wsf11Environment6getEnvEv 
[Tue Aug 27 09:50:31 2013] [error] wsf_cpp_msg_recv.cpp(185) IMPL object for service 'Hello_Service' not set in message receiver. 103 :: Failed in creating DLL 

이자 존재의 라인 :


[Tue Aug 27 09:50:31 2013] [error] class_loader.c(152) Loading shared library ..//services/Hello_Service/libHello_Service.so Failed. DLERROR IS ..//services/Hello_Service/libHello_Service.so: undefined symbol: _ZN7wso2wsf11Environment6getEnvEv 

이 사이 헛소리를 엉망으로 몇 가지 이름처럼 보인다 WSO C++ 코드 및 축 서버의 C 코드가 포함됩니다. 어떤 아이디어?

+0

@ paul-ogilvie : 안녕하세요 Paul, [내 질문] (http://stackoverflow.com/questions/33692127/unhandled-exception-at-x-in-axis2-http-server-exe?noredirect= 1 # comment55156440_33692127)이 사본은 폐쇄되었으므로 닫았습니다. 이 업데이트를 고려하십시오. – sjsam

+0

@sjsam의 http://stackoverflow.com/questions/33706609/what-does-actually-mean도 참조하십시오. – tripleee

답변

0

아마도 WSO2 WSF/C++ 자체와의 링크를 잊어 버렸을 가능성이 있습니다.

서비스를 다시 컴파일하여 -lwso2_wsf을 LDFLAGS에 추가하십시오.

+0

나는 다음과 같이 만들고있다 : 'g ++ -g -shared -olibHello_Service.so -I $ WSFCPP_HOME/include -I. -I $ WSFCPP_HOME/포함/axis2-1.6.0 -I $ WSFCPP_HOME/포함/axis2-1.6.0/플랫폼 -L $ WSFCPP_HOME/lib 디렉토리 \ -laxutil \ -laxis2_axiom \ -laxis2_engine \ -laxis2_parser \ -lpthread \ -laxis2_http_sender \ -laxis2_http_receiver \ -lguththila \ -lwso2_wsf \ * .cpp' 그래서, 내가 제대로 구축 믿습니다. 초기에 서버가 서비스를로드하기 때문에 이상합니다. – kalden

+0

'C++ filt _ZN7wso2wsf11Environment6getEnvEv'는'wso2wsf :: Environment :: getEnv()'를 주며'libwso2_wsf.so'에 있어야합니다. 'nm /path/to/libwso2_wsf.so |를 시작하여 확인해보십시오. grep _ZN7wso2wsf11Environment6getEnvEv'를 입력하고 결과를 여기에 씁니다. – loentar

+0

00017750 T _ZN7wso2wsf11Environment6getEnvEv – kalden

관련 문제