You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "nadir amra (JIRA)" <ax...@ws.apache.org> on 2008/02/21 16:19:19 UTC

[jira] Commented: (AXISCPP-1046) WSDD - Error occurs when deploy web services using AdminClient and AdminService!

    [ https://issues.apache.org/jira/browse/AXISCPP-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12571068#action_12571068 ] 

nadir amra commented on AXISCPP-1046:
-------------------------------------

William, I assume these updates fixed the problems?  If so, will incorporate.  Thanks.

> WSDD - Error occurs when deploy web services using AdminClient and AdminService!
> --------------------------------------------------------------------------------
>
>                 Key: AXISCPP-1046
>                 URL: https://issues.apache.org/jira/browse/AXISCPP-1046
>             Project: Axis-C++
>          Issue Type: Bug
>          Components: WSDD Processing
>    Affects Versions:  1.6 Beta
>         Environment: Windows XP SP2, Apache 2.0.63, SimpleAxisServer, Visual C++ 8.0
>            Reporter: William Chou
>
> When I built Axis-C++ with my own. I tested the samples, everything worked fine.
> But when I decided to deploy a web service using AdminClient and AdminService. It turned out to be an error.
> So I debugged the programs on my own.
> And I found out that when the programs runs to the following function, some value doesn't set well.
> AXIS_TRANSPORT_STATUS WSDDDocument::WSDDMemBufInputStream::getBytes(char* pcBuffer, int* piRetSize) on file %AXISCPP_ROOT%\src\wsdd\wsdddocument.cpp at line 257.
> The following lines are here:
> 278:	int nBufLen = strlen(m_pcWSDDMemBuffer);
> 279:	if (0 == nBufLen) 	{
> 280:		#ifdef ENABLE_AXISTRACE
> 281:			AXIS_TRANSPORT_STATUS traceRet = (TRANSPORT_FINISHED);
> 282:			if (axiscpp::AxisTrace::isTraceOn())
> 283:				axiscpp::AxisTrace::traceExit("WSDDDocument", "getBytes", NULL, 2,
> 284:					TRACETYPE_DATA, sizeof(AXIS_TRANSPORT_STATUS), ((void*)&traceRet));	  /* AUTOINSERTED TRACE */
> 285:			return traceRet;
> 286:		#else
> 287:			return TRANSPORT_FINISHED;
> 288:		#endif
> 289:	}
> 290:
> 291:	nBufLen = ((*piRetSize - 1) < nBufLen) ? (*piRetSize - 1) : nBufLen;
> 292:	strncpy(pcBuffer, m_pcWSDDMemBuffer, nBufLen);
> 293:	pcBuffer[nBufLen] = 0;
> 294:	m_pcWSDDMemBuffer+=nBufLen;
> So I added the following line after line 279:
> 	*piRetSize = nBufLen;
> and the same line after line 294. 
> It works for the first time. I opened the server.wsdd file for view and found out that the wsdd file was not a valid xml file. So I debug it again and found out the following lines on file WSDDDeployment.cpp at lines 255 - 258:
> 255:        if (fputs("<deployment xmlns=\"http://xml.apache.org/axis/wsdd/\
> 256:            \" xmlns:C=\"http://xml.apache.org/axis/wsdd/providers/C\" xmlns:\
> 257:            CPP=\"http://xml.apache.org/axis/wsdd/providers/CPP\">\n",
> 258:            file) < 0) break;
> So I modified these lines as following:
> 255:        if (fputs("<deployment xmlns=\"http://xml.apache.org/axis/wsdd/"
> 256:            "\" xmlns:C=\"http://xml.apache.org/axis/wsdd/providers/C\" xmlns:"
> 257:            "CPP=\"http://xml.apache.org/axis/wsdd/providers/CPP\">\n",
> 258:            file) < 0) break;
> Everything works fine. Is this a problem?
> BTW: The AdminClient and AdminService projects files are out of date. Some functions are no longer the original. But these are minor problems. So I can easily change the source code to works fine.
> Thanks for your help!

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-dev-help@ws.apache.org