Help - Web Service Operation-level (rather than end-point level) policies

Hi Guys,
According to the documentation:
http://download.oracle.com/docs/cd/E15523_01/apirefs.1111/e13952/taskhelp/webservices/ConfigureWSPolicyFile.html
you can associate a policy at the end-point level, or the operation level.
I'm wondering if the service implements policy at the operation level, what is required from a client perspective to set SecurityPolicyFeature just for a specific operation?
Or, does one have to continually keep requesting a new port with the appropriate feature for each operation?
e.g.
// operation without policy
StockMarketPortType port = service.getStockMarketPortTypePort();
Integer stockprice = port.getStockPrice("ORCL");
// if ORCL stock price looks good ... :)
// operation with SAML policy
SecurityPolicyFeature securityFeatures[] =
new SecurityPolicyFeature("oracle/wss11_saml_token_with_message_protection_client_policy")
port = service.getStockMarketPortTypePort(securityFeatures);
boolean result = port.sellStock("ORCL", 500);
thanks
Matt.

Matt,
As Bethune mentioned, the WSS implementation that is part of WebLogic does support operation and message-level policy attachments, but Oracle Web Services Manager (OWSM) does not. The SecurityPolicyFeature you reference in your sample is from OWSM. Do you mind sharing any more details about your use case (and specifically why you would have different policy for different operations) that I could share with OWSM?
In the meantime, your workaround is a good one (different port instances).
Thanks,
Ryan

Similar Messages

  • Web Service Operation Timeout - How can this be done?

    Good day.
    We are running OC4J 10.1.3.3 in a standalone container. We are deploying stateless Web Services. I am wondering if there is a way for us to specify a timeout at the operation level from all clients? Right now, we are observing that some requests just never seem to timeout. For example, the web service operation is calling a 3rd party component that might take a while to complete, but we don't want to have our clients wait.
    I realize that we can just have the client timeout, however, it does not affect the application server as the request seems to keep on going. I have had some requests being as old as 28 days. Is this handled by the global thread pool? I know we can do min / max etc, but what about a timeout of an active thread?
    So, I am curious if anyone has tackled this before? I know we can code this into the request, however, this seems like something the container / service should be able to handle via a configuration.
    Any insights / suggestions would be great. Is this a possibility?
    Thanks,
    BradW

    Several ways to do this (I don't work enough in Motion to advise there), but in FCP...one way would be...
    V1 - background visual
    V2 - Rectangle Shape (from Shapes Generator/bottom right of viewer)
    V3 - Primary keyed image (car in the video clip)
    V4 - Same as V2 (only tweak the Rectangle settings)
    V5 - Same as V3 (duplicated shot of car)
    V6/V7 - V8/V9 repeat as needed for different layers...
    Apply 'Composite Mode - Travel Matte/Luma) to each of the 'car' video layers.
    Then offset each pair of car/rectangle layers as you wish to see them over time.
    This approach will not give you drop shadow abilities. There are ways to make that happen, along with different approaches to the effect itself.
    Play around...it's one of the best ways to learn FCP capabilites for editing/compositing.
    K

  • Web service operation ... with parameters {} cannot be found

    Hi All,
    I am accessing a web service of a web site using ColdFusion.Each time I am calling the web service I am getting the message "Web service operation ... with parameters {} cannot be found".The wsdl file showing the parameter as complex type .So I have passed value to the particular method using structure and xml type each time I gets that error message.I can not post here the wsdl for security reason.
    When I am calling this Web service from .net it is working without any problem. .NET directly creating the objects of the parameter which the method is needed from the wsdl but I don't know whether it is possible in ColdFusion or not.Also I don't know whether the web service in .net or in other language.
    Please suggest something.
    Thanks
    Upen

    Thanks for your response.
    Yes, I have passed all the arguments but it seems the web application is coded in .net and by googling I came to know that if the .net receives a complex type of object then it creates problem when we pass argument from coldfusion.(means type mismatch)
    If you know about it please suggest .

  • Web service operation could not be found.

    Would CF give this error if there was simply an error in the
    cffunction code? The service is there and it looks fine. In fact,
    most of the code comes from another cffunction in the same file,
    but with more arguments and some additional code. I have cleared
    the server cache several times.
    It's driving me nuts. The error codes sometimes just don't
    make any sense or are misleading. I hope future versions of CF deal
    with this better.
    Web service operation "RegisterFiles" with parameters
    {groupID={185},folder={/},filename={MOV04684.MPG},userName={xxxx},userPassword={xxxx},fil eType={video}}
    could not be found.

    NealCrankshaw, in your case you definitaly need to use java
    in order to create and use complex data types arguments with your
    web service. Here are the steps to follow in nutshell
    1. Use wsdl2java tool (CF_HOME/runtime/bin) tsupplying URL to
    webservice WSDL to create java code.
    2. Create java classes by compiling java code created in step
    1
    3. Create jar file(s) from classes in step 2
    4. Put jar file in CF classpath or just copy it to
    CF_HOME/lib directory
    5. Using <cfscript> create required objects, arrays and
    other arguments and supply them to web service method call.

  • Detail; The fault returned when invoking the web service operation

    Hi,
    We are getting below errors from Coldfusion, I am not a coldfusion expert engg. so unable to trace it futher..kindly suggest some move to get this resolve.
    Detail; The fault returned when invoking the web service operation is:<br> <pre>AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server faultSubcode: faultString: java.lang.reflect.UndeclaredThrowableException faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:java.lang.reflect.UndeclaredThrowableException at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221) at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128) at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:10 87) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch( Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(U... ''</pre>
    Message: Cannot perform web service invocation getStudentByNRIC.
    StackTrace: coldfusion.xml.rpc.ServiceProxy$ServiceInvocationException: Cannot perform web service invocation getStudentByNRIC. at coldfusion.xml.rpc.ServiceProxy.invokeImpl(ServiceProxy.java:230) at coldfusion.xml.rpc.ServiceProxy.invoke(ServiceProxy.java:143) at 

    I expected something like:
    http://localhost:8500/opensource/QBWC_Shell.cfc?wsdl
    Apart from that, your code looks right.

  • Executing web service operation with complex input - Please help

    Hi All,
    I am working on invoking a web service through ADF. The request format for the webservice consists of multiple occurance of same element. Below is sample request. here <index> is repeating n number of times.
    <soapenv:envelope>
    <soapenv:Body>
              <ns6:StoreDocumentRequest>
                   <ns6:docFileType>ABC</ns6:docFileType>
                   <ns6:Metadata>
                        <ns6:index>
                             <ns6:indexType>Format_Type</ns6:indexType>
                             <ns6:indexValue>ACROBAT</ns6:indexValue>
                        </ns6:index>
                        <ns6:index>
                             <ns6:indexType>Buyer_No</ns6:indexType>
                             <ns6:indexValue>1234567</ns6:indexValue>
                        </ns6:index>
                        <ns6:index>
                             <ns6:indexType>Document_Type</ns6:indexType>
                             <ns6:indexValue>101A</ns6:indexValue>
                        </ns6:index>
                        <ns6:index>
                             <ns6:indexType>Capture_Location</ns6:indexType>
                             <ns6:indexValue>XYZ</ns6:indexValue>
                        </ns6:index>
                   </ns6:Metadata>
                   <ns6:Content>XXXXXXXXXXXX</ns6:Content>
              </ns6:StoreDocumentRequest>
         </soapenv:Body>
    </soapenv:envelope>
    now I need to populate these values thrugh Operation binding in my managed bean class. I have also dragged these parameters and operation on my jsf page to get hold of those in my managed bean context. I am having following code in my managed bean to set these parameters.
    BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
    OperationBinding storeDocumentBinding = bindings.getOperationBinding("StoreDocument");
    storeDocumentBinding.getParamsMap().put("docFileType", filetype);
    storeDocumentBinding.getParamsMap().put("Content", filecontents);
    storeDocumentBinding.getParamsMap().put("indexType", filecontents);
    storeDocumentBinding.getParamsMap().put("indexValue", filecontents);
    storeDocumentBinding.getParamsMap().put("indexType", filecontents);
    storeDocumentBinding.getParamsMap().put("indexValue", filecontents);
    storeDocumentBinding.execute();
    Here I am facing some issues:
    1. The operation is not picking values put from ParamMap(). It is taking values as empty (as in my .jspx page form, I have made it hidden though). It takes value from my jspx page form, which is blank.
    2. when I am manually entering values in the .jspx page form, for <indexValue> and <indexType> tags, it is taking only one value (last one) for creating the request.
    3. the storeDocument() function is a SOAP based service. How can I check for SOAP response after operationBinding.execute(). I checked for response after execution, it sends an object as result. How to get a SOAP response from it.
    I need to fetch few values from the SOAP response and display it on screen.
    Please help me out. I am noob in ADF.
    regards,
    Rajan

    Hi Puthanampatti,
    I followed the link and did exactly as mentioned. Here is my code
    public String downloadDocument(FacesContext context, OutputStream out) throws IOException {
    BindingContext bctx = BindingContext.getCurrent();
    BindingContainer bindings = bctx.getCurrentBindingsEntry();
    OperationBinding retrieveDocumentBinding = bindings.getOperationBinding("RetrieveDocument");
    DCIteratorBinding attachmentsIterator = (DCIteratorBinding)bindings.get("AttachmentsIterator");
    String documentId = attachmentsIterator.getCurrentRow().getAttribute("Seq").toString();
    System.out.println(customSoapProvider.getRequest()); // getting null here
    AttributeBinding docFileTypeVal = (AttributeBinding)bindings.getControlBinding("docId");
    docFileTypeVal.setInputValue(522117);
    Object result = retrieveDocumentBinding.execute();
    System.out.println(customSoapProvider.getResponse()); //getting null here
    but I am getting a null response in the last line.
    what am I missing here.
    regards,
    Rajan
    Edited by: Rajan M on Jan 5, 2013 11:27 AM

  • How to Call web service operation by creating plain SOAP message in client?

    Hi
    Thank you for reading my post.
    I have some questions about using web methods of a web service which i would be very gratfull if you could answer.
    I should implement a web service that should receive a file with some other parameters from client and another web service which should receive some parameters and return a file.
    I used a mechanism like the following one to handle the condition and it just works. But I have a problem, I need to create dynamic invocation and I must create soap message and send it to webservice (no IDE generated code)
    What i need is one or two tips or a sample that shows how we can send and receive files by web services.
    I want to know how we can create the SOAP message ourself and then send it to the web service endpoint and it call the web method and ....
    Imagine the following web method, How i can invoke it by creating soap message myself and sending it to end point.
    @WebMethod
    public String saveFile(@WebParam(name = "fileName") String fileName, @WebParam(name = "fileContent") byte[] fileContent) {
    // TODO implement operation
    return "Something";
    Another question is :
    Does this mechanism that i used to transfer files is OK?
    Is it optimized or there are some other ways to do this job.
    I should say that i put one week on handlers to use soap attachments and i get no result.
    So, Please let me know if you know or have some sample that show me how to do the above job.
    Thanks.

    Hi
    From NW04s SP8 you can create webservice systems from within VC , and you will have the option of adding a user and password to authenticate. You can find it at Tools>>Define web service system. You will see a check box url requires user and password.
    If for some reason you can not do it in VC then you should create the system in the portal and fill out the usermapping screens.
    Jarrod Williams

  • Web Service operation not in SOAP request

    Hi There,
    I have a problem with the SOAP receiver adapter.
    I have created an external definition and uploaded a wsdl file. Several messages have been created out of the file.
    In my mapping I fill the message structure from the wsdl file. When I send the message to the Web Service I get an error back.
    The reason for this error seam to be a missing tag under the SOAP:Body element. Because when I create a SOAP request with the XMLSPY, it looks like this:
    <SOAP:Body>
      <m:setVendor xmlns:m="http://..." ...>
        <ns8:v xmlns:ns8="http://...">
    But in the message from the XI adapter the <m:setVendor..> tag is missing:
    <SOAP:Body>
      <ns8:v xmlns:ns8="http://...">
    This m: tag seems to be the operation of the web service.
    Has anybody an Idea how to solve this?
    Is the error in the SOAP adapter or in the message definition?
    By the way, can I display the complete SOAP message that has been sent out from the adapter with any XI tool (including SOAP header)?
    BR,
    Jürgen

    Jurgen
    I have exactly the same problem in a RFC -> RFC Adapter -> XI -> SOAP Adapter -> Web Service scenario.
    What we see is that the external vendor wants the SOAP to be in "documet-literal wrapped" whereas XI is returning is as "document literal".
    **I don't want to change the original wsdl file because it was provided by our business partner and a modification could cause problems when release update.
    But I have build a workaround with an XSL stylesheet as a second mapping step in my Interface Mapping. The stylesheet adds the missing operation tag into the XML message.**
    Even in our case we dont want to change wsdl, the operation & soap body are going as two parts we want the soap body in operation,i think  this can be achieved by xsl stylesheet,Can u please brief us about xsl stylesheet as a second mapping step in interface maping.I dint work on xsl before......
    Advance thanx for ur help
    Sriram

  • Web Service Operation Returning null

    Hi All,
    I have a web service proxy generated from WSDL. Which is generated fine.
    Once i started using the operations in the Client program. the call to the webservice is successful but the return type(This is a complex type, referring to different elements and xsds) is null.
    Please help !!!!
    This is the code snippet of my client code
    confService = new ConferenceService();
    ConferencePortType confPortType = conferenceService.getConferencePort();
    // Add your code to call the desired methods.
    GetConferenceRequest getCReq = new GetConferenceRequest();
    getCReq.setConferenceRecordNumber(20707);
    System.out.println("getConfReq == "+getCReq.getConferenceRecordNumber());
    ConferenceBODType conf = conferencePortType.getConference(getCReq);
    if (conf != null && conf.getConference() != null)
    //conf.getConference() is null
    System.out.println("Get Conference Id -- "
    +conf.getConference().getConferenceHeader().getConferenceRecNum());
    //gc = gc.transformConference(conf);
    else
    System.out.println("ConferenceBODType is null");
    I am getting ConferenceBODType is null because of the second condition in the if statement
    Please suggest, what can be the problem.
    Thanks,
    Sri

    Shay,
    The link worked. I generated Java Web Service from my WSDL, and tested using the HTTP analyzer
    But for get Operation method on the WSDL, I could not see anything in the response object, but the same operation i could see the output in soapUIPro.
    Can you give me some more guildelines to debug...
    Thanks,
    Sri

  • Problem making modified WCF web service operation compatible with old client

    Hi,
    I am trying to make a modified version of a a WCF web service work with old clients. The method signature looks like:
    [OperationContract]       
    itemList GetItemList(getItemList param);
    I am adding elements to the "getItemList" class which should be optional. The class is generated from XSD schema with xsd.exe (this means we are using schema-first design). The new element is:
    <element name="itemOwner" type="string" maxOccurs="1" minOccurs="0">      </element>
    and the new generated code in the getItemList class becomes:
    private string itemOwnerField;       
    public string itemOwner
    get {return this.itemOwnerField;}
    set {this.itemOwnerField = value; }
    When I look at the new WSDL it has:
    <xs:element name="itemOwnerField" nillable="true" type="xs:string"/>
    Now I was expecting the old client to still be able to call the new client, since the new field is nillable. The client has a service reference to the old version of the web service so it uses a C# stub. When the old client tries to invoke the new service,
    I get error:
    The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter http://tempuri.org/:param. The InnerException message was 'Error in line 1 position 754. 'Element' 'itemIDField' from namespace
    'http://schemas.datacontract.org/2004/07/ServerBaseAPI' is not expected. Expecting element 'itemOwnerField'.'.  Please see InnerException for more details.
    My interpretation is that the server side of the new service cannot deserialize the incoming message since it expects it to contain itemOwnerField. Why it that, when it is nillable according to the WSDL? What can I do to solve or work around the problem?

    Hi gaor.mawell,
    The nillable attribute is a special attribute in the XML Schema instance namespace that provides an interoperable way to explicitly represent a null value. The receiving end can interpret these as
    null, zero, and null, respectively. There is no guarantee that a third-party deserializer can make the correct interpretation, which is why this pattern is not recommended. The
    DataContractSerializer class always selects the correct interpretation for missing values. So have you tried to use the DataMember's
    IsRequired property? this
    DataMember's
    IsRequired property tells the serialization engine whether the value of itemOwnerField must be presented in the underlying XML.
    For more information, please try to refer to the this artcle:
    https://msdn.microsoft.com/en-us/library/aa347792(v=vs.110).aspx .
    Best Regards,
    Amy Peng
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • IP Filtering of web service operations

    Our customer has a very specific security requirement. They want to restrict access to web service (on a operations level) based on IP Address Filtering. Besides the question whether this is wise or not (IP Spoofing ?!?) we are researching whether this can be done easily in OSB 10.3
    You can do Connection Filter on a weblogic server level. As I understand this is application server wide So this is not usable for use.
    The only thing we can think of is doing it inside the service implementation itself. There you can extract the client-address from the inbound ($inbound/ctx:transport/ctx:request/http:client-address). We can check this IP address against a list of addresses we store in a custom list (some database or other store).
    Has anybody any other ideas? Is there a more elegant, less proprietary way to solve this? I already though of using access based control (XACML) but our customer does not want this (or cannot do it?!?). They cannot or will not put any identity inside the messages (usernames etc.)
    Regards
    Frank

    Hi Damorgan,
    Can we use sys_context to get the ipaddr of web users? I was under the impression that sys_context will be giving ipaddr of web server and not the user desktop ipaddr from where he is connecting to webserver via for eg IE.
    Regards,
    Satheesh Shanmugam
    http://borndba.com

  • Generic Web Service Operation

    I am trying to have a web service that accepts any operation from the client. The operation is unknown by the web service at the time of teh call. This is to put on a web servce front-end for a non-web service. I also want it to read a raw SOAP message instead of the schema sent, so I can just pass on the xml.
    Any ideas? I am going to start researching if the SOAP Message handlers can accomplish this.
    kurt...

    You can use javax.xml.ws.Provider interface provided by JAX-WS. Provider interface let you exchange xml documnent. However, client and provider need to know information they are going to process.
    You can use WebLogic 10.0 which is JAX-WS compliant.
    Ali

  • Implementing Multiple Web Service operations

    Currently using JCAPS 5.1.3.2. Supposedly there is a way to implement a web service with multiple operations without using bpel. I haven't been able to figure out how to do this except by creating multiple WSDLs, each having one operation which invokes one jcd. Is there a way to do this with one WSDL?
    Thanks.
    Sharon

    Sharon,
    when you import a WSDL, you have to export the XSD nodes to an OTD in order to use them in a WebService Collabale JCD. With this JCD you create your own operation.
    Normally you have a Request and Reply element in your WSDL.
    I think you can define more of these "operations" in your WSDL which you can export to XSD nodes and then use in separate JCDs (= operation).
    You can handle only 1 operation per WebService collable JCD.
    Hope this helps some.
    Regards,
    Madere

  • Web Service Operation returns null values

    I got a Flash program that uses a Web Service.  I linked the actionscript to the Flex Files to get my connection to work.  I got it to work fine, but the problem is with sending it parameters.  This only works on functions without parameters.  But when I try to pass parameters, it returns null.  I also tried using the argruments function, but that caused it to return error.  What do I do to make it work?  Here is my code below:
    stop();
    import flash.display.MovieClip;
    import flash.events.MouseEvent;
    import mx.rpc.soap.*;
    import mx.rpc.events.*;
    import mx.rpc.AbstractOperation;
    import flash.events.Event;
    import flash.utils.Timer;
    var webService:WebService = new WebService();
    webService.wsdl = "http://www.askent.com/ttcs.asmx?WSDL";
    webService.loadWSDL();
    var serviceOperation:AbstractOperation;
    /*var loginTimer: Timer = new Timer(1000, 1);
    loginTimer.start();*/
    var loginOperation: AbstractOperation;
    var nickname:String;
    var token:String = "token";
    var gameName:String = "CRAZ";
    //loginTimer.addEventListener(TimerEvent.TIMER, SetupWebService);
    signin_btn.addEventListener(MouseEvent.CLICK, login);
    /*function SetupWebService(event: TimerEvent):void{
              webService.loadWSDL("http://www.askent.com/ttcs.asmx?WSDL");
              webService.addEventListener(LoadEvent.LOAD, BuildServiceRequest);
    function BuildServiceRequest(evt:LoadEvent){
              /*loginOperation = webService.getOperation("GuestLogin");
              loginOperation.send(nickname, token, gameName);
              //nickname = name_input.text;
              loginOperation.addEventListener(FaultEvent.FAULT, DisplayError);
              loginOperation.addEventListener(ResultEvent.RESULT, DisplayResult);*/
              trace("connected");
    function login(event: MouseEvent): void{
              loginOperation = webService.getOperation("GuestLogin");
              //nickname = name_input.text;
              loginOperation.addEventListener(FaultEvent.FAULT, DisplayError);
              loginOperation.addEventListener(ResultEvent.RESULT, DisplayResult);
              //loginOperation({Nickname: nickname, Token: token, GameName: gameName});
              //loginOperation.arguments = {nickname: "GGG", Token: "token", GameName: "gameName"};
              loginOperation.send([nickname, token, gameName]);
    function DisplayError(evt:FaultEvent){
                                  trace("error");
    function DisplayResult(evt:ResultEvent)
              var wsdlResponse:String = evt.result as String;
              trace(wsdlResponse);
    function sendLogin(nickname: String, token: String, gameName: String): String{
              return nickname + token + gameName;

    Shay,
    The link worked. I generated Java Web Service from my WSDL, and tested using the HTTP analyzer
    But for get Operation method on the WSDL, I could not see anything in the response object, but the same operation i could see the output in soapUIPro.
    Can you give me some more guildelines to debug...
    Thanks,
    Sri

  • Web Service Operations

    Hi,
    Is it possible to get list of operations from an wsdl file through Web service client? with out using wsdl2java tool?
    Thanks.

    Hello Bala,
    I have tried using many WSDL files. Even the WSDL file stated in the blog by Kai /people/community.user/blog/2006/10/27/create-new-argo-object-with-the-argo-web-service-wizard could not show the service methods for me.
    I also tried this wsdl file as well.
    http://www.ignyte.com/webservices/ignyte.whatsshowing.webservice/moviefunctions.asmx?wsdl
    And offcourse, my intension is to try Amazon or ebay webservices and get the search results which I still could not get any service methods displayed
    Thanking you.
    Regards,
    Ajay.

Maybe you are looking for

  • Stock Write-off Report

    Dear Friends, Is there a transaction or Report available to see the write-off stock by plant or through any movement types ? Please suggest the requirement is as fallows: Report needs to be selectable by IPC or ICC. Or plant The report will need to s

  • DB High Availability - Java Edition

    I am using Berkeley DB Java Edition to do writes and reads to my database. I am planning on having a cluster of databases with HA feature. I noticed that the feature set for Berkeley DB Java Editon does not include High Availabilty. I did check the C

  • Why are my PMS colors different in CS3 & CS6?

    I originally created a label in CS3, and just had to make a new one a different size. When I did the new art in CS6, the PMS colors are way different! I basically copied and pasted the old art into the new file. I have replaced all PMS colors, but th

  • Transactions not getting posted in Vertex but OK in SAP

    Hi all, Am into an issue as follows: I have 2 IRs posted to a PO. The tax code on the PO is AP Tax from Vertex but was changed to AP self assess tax in both invoice. One of the invoices got updated to the external system (Vertex) but the other one di

  • Having some problems with Xcode and C++

    hi guys , I am learning C++ and I am having the following problem when trying to use .h files. Example. I make a new document using Xcode2.3. in the source folder I got my main.cpp and i 2nd click it, choose add/file/BSD/header file. main.cpp #includ