Create client classes in Abstract Factory

Hi!
Let's we have one of the next classes in AbstractDesign patterns:
1.WindowFactory - abstract factory
2.MotifWindowFactory, MacWindowFactory - concrete factory
3.Window - abstract product
4.MotifWindow, MacWindow - concrete products
5.Client - client class
6.ClientCreator - class that creates our client class
The source code of Client is like this:
public class Client {
private AbstractFactory af = null;
public Client(AbstractFactory af) {
this.af = af;
af.createAbstractProduct();
The code of ClientCreator will be like this:
public class ClientCreator {
Client client = new Client(new MotifWindowFactory());
OK!
But we can have many client classes. And this client classes can create from different places (many ClientCreator classes) in our project.In our project we have:
public class ClientCreator1 {
Client client1 = new Client(new MotifWindowFactory());
public class ClientCreator2 {
Client client2 = new Client(new MotifWindowFactory());
public class ClientCreatorN {
Client clientN = new Client(new MotifWindowFactory());
And what will happen when I need to change concrete factory. I must go to EVERY ClientCreator classe and change code to create client classes with another concrete factory:
public class ClientCreator1 {
Client client1 = new Client(new MacWindowFactory());
public class ClientCreator2 {
Client client2 = new Client(new MacWindowFactory());
public class ClientCreatorN {
Client clientN = new Client(new MacWindowFactory());
I think that this is not flexibility.
Can any tell me what I wrong understand in AbstractFactory pattern?
Thanks.

The code
Client client1 = new Client(new MacWindowFactory());
Client clientN = new Client(new MacWindowFactory());results in the creation of a factory for each client. This is unnecessary. Typically, you'd use a singleton here - this is mentioned in GoF 1995:
Client client1 = new Client(MacWindowFactory.getInstance());
Client clientN = new Client(MacWindowFactory.getInstance());This means that only one factory is created (assuming a singleton implementation within MacWindowFactory.getInstance).
This approach ties each client creation to a given factory type. If you want all clients to use the same factory type, then you would change the code to:
Client client1 = new Client(WindowFactory.getInstance());
Client clientN = new Client(WindowFactory.getInstance());where WindowFactory would return the appropriate factory type. Now if WindowFactory is an interface, then you create a "Factory Factory", or "Factory Manager". i.e.
Client client1 = new Client(WindowFactoryManager.getFactoryInstance());
Client clientN = new Client(WindowFactoryManager.getFactoryInstance());The implemenetation of getFactoryInstance can work any of many ways. If you've only one concrete WindowFactory for now, then hard code it into getFactoryInstance. If you have many, then you could have a setFactoryInstance method on WindowFactoryManager. Or getFactoryInstance could use reflection to create a factory based on a Property, etc.

Similar Messages

  • WCF client consumes JAVA web service - should I use WCF or just create a custom parser/message factory?

    We've a business partner who requires us to create a service request message with a SAML 2.0 assertion. The partner's supplied two certificates and a test harness for their JAVA webservice.
    I've created a WCF client with a `CustomBinding` to try and recreate the request and consume the service, but I'm getting so frustrated with the nuances of WCF (and the lack of intrinsic support for SAML 2.0) I'm wondering am I better off using something like
    a `WebClient` or `HttpWebRequest` and encrypting/building & signing the XML web request and doing the same for the response. I know there's a lot of work involved on this but at least I'd be in full control.
    Your advice would be very much appreciated, what I'm working with is displayed below
    **Note: I was supplied with a SoapUI Test harness for the Java service**
    **The vendor supplied me with this request (ran though SOAPUI and extracted via Fiddler)**
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
    <SOAP-ENV:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
    <wsse:Security SOAP-ENV:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <xenc:EncryptedKey Id="EncKeyId-29B98C291D1FDFB39113352984774895">
    <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
    <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <wsse:SecurityTokenReference>
    <ds:X509Data>
    <ds:X509IssuerSerial>
    <ds:X509IssuerName>CN=test_server</ds:X509IssuerName>
    <ds:X509SerialNumber>12356789</ds:X509SerialNumber>
    </ds:X509IssuerSerial>
    </ds:X509Data>
    </wsse:SecurityTokenReference>
    </ds:KeyInfo>
    <xenc:CipherData>
    <xenc:CipherValue>
    <!--Omitted -->
    </xenc:CipherValue>
    </xenc:CipherData>
    <xenc:ReferenceList>
    <xenc:DataReference URI="#EncDataId-3"/>
    </xenc:ReferenceList>
    </xenc:EncryptedKey>
    <wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="CertId-29B98C291D1FDFB39113352984773591" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><!-- Omitted --> </wsse:BinarySecurityToken>
    <ds:Signature Id="Signature-1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:SignedInfo>
    <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
    <ds:Reference URI="#id-2">
    <ds:Transforms>
    <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    </ds:Transforms>
    <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <ds:DigestValue>
    <!--Omitted -->
    </ds:DigestValue>
    </ds:Reference>
    </ds:SignedInfo>
    <ds:SignatureValue>
    <!--Omitted -->
    </ds:SignatureValue>
    <ds:KeyInfo Id="KeyId-29B98C291D1FDFB39113352984773792">
    <wsse:SecurityTokenReference wsu:Id="STRId-29B98C291D1FDFB39113352984773893" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <wsse:Reference URI="#CertId-29B98C291D1FDFB39113352984773591" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/>
    </wsse:SecurityTokenReference>
    </ds:KeyInfo>
    </ds:Signature>
    </wsse:Security>
    <saml:Assertion ID="_54d0c8395de26c3e44730df2c9e8d3e9" IssueInstant="2012-02-17T10:40:36.806Z" Version="2.0" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
    <saml:Issuer>CN=test_client</saml:Issuer>
    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
    <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
    <Reference URI="#_54d0c8395de26c3e44730df2c9e8d3e9">
    <Transforms>
    <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
    <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <DigestValue>
    <!--Omitted -->
    </DigestValue>
    </Reference>
    </SignedInfo>
    <SignatureValue>
    <!--Omitted -->
    </SignatureValue>
    <KeyInfo>
    <X509Data>
    <X509Certificate>
    <!--Omitted -->
    </X509Certificate>
    </X509Data>
    </KeyInfo>
    </Signature>
    <saml:Subject>
    <saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">[email protected]</saml:NameID>
    </saml:Subject>
    <saml:Conditions NotBefore="2012-02-17T10:40:21.806Z" NotOnOrAfter="2012-02-17T10:41:06.806Z"/>
    </saml:Assertion>
    <wsa:Action SOAP-ENV:mustUnderstand="1">http://www.xxxxxxx.xxx/ws/schemas/xxxxxx1/xxxx/xxxxxxxxxxxxxx</wsa:Action>
    <wsa:MessageID SOAP-ENV:mustUnderstand="1">uuid:bffc27ba-68d9-44e6-b1f0-e2f852df7715</wsa:MessageID>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body wsu:Id="id-2" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <xenc:EncryptedData Id="EncDataId-3" Type="http://www.w3.org/2001/04/xmlenc#Content">
    <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
    <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <wsse:SecurityTokenReference xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <wsse:Reference URI="#EncKeyId-29B98C291D1FDFB39113352984774895"/>
    </wsse:SecurityTokenReference>
    </ds:KeyInfo>
    <xenc:CipherData>
    <xenc:CipherValue>
    <!--Omitted -->
    </xenc:CipherValue>
    </xenc:CipherData>
    </xenc:EncryptedData>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    **This is as close as I've gotten with my WCF client. Issues I can immediatley is that the `<o:SecurityTokenReference>` element should contain the Issuer and Serial, instead it contains a `KeyIdentifier` element?**
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <s:Header>
    <a:Action s:mustUnderstand="1" u:Id="_3"/>
    <a:MessageID u:Id="_4">urn:uuid:fc8ef84b-dbf5-4150-a0c3-d4cc986333d1</a:MessageID>
    <ActivityId CorrelationId="a9e1fec4-32bc-4633-909e-3d601c809b3c" xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">d1909115-8922-46f3-a96c-db15bf91c599</ActivityId>
    <a:ReplyTo u:Id="_5">
    <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
    </a:ReplyTo>
    <VsDebuggerCausalityData xmlns="http://schemas.microsoft.com/vstudio/diagnostics/servicemodelsink">uIDPo27oY4/3mnBOry0YL4StqvcAAAAA0UM+eVt4fU2AOe9/B3lPDZNf/2HmAuNEvzAoW0eKVSUACQAA</VsDebuggerCausalityData>
    <a:To s:mustUnderstand="1" u:Id="_6">https://localhost:8089/ws</a:To>
    <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <u:Timestamp u:Id="uuid-e5592f06-32af-40fb-996e-a0a469c7ed5e-2">
    <u:Created>2012-04-24T20:41:50.447Z</u:Created>
    <u:Expires>2012-04-24T20:46:50.447Z</u:Expires>
    </u:Timestamp>
    <e:EncryptedKey Id="uuid-e5592f06-32af-40fb-996e-a0a469c7ed5e-1" xmlns:e="http://www.w3.org/2001/04/xmlenc#">
    <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
    <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
    <o:SecurityTokenReference>
    <o:KeyIdentifier ValueType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#ThumbprintSHA1" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">lU10DQn4lSpE4fRpE9gslm5QDt0=</o:KeyIdentifier>
    </o:SecurityTokenReference>
    </KeyInfo>
    <e:CipherData>
    <e:CipherValue>
    <!--Omitted-->
    </e:CipherValue>
    </e:CipherData>
    <e:ReferenceList>
    <e:DataReference URI="#_2"/>
    <e:DataReference URI="#_7"/>
    <e:DataReference URI="#_8"/>
    </e:ReferenceList>
    </e:EncryptedKey>
    <o:BinarySecurityToken u:Id="uuid-fad0c01f-ab4b-4a5f-bec6-93aa8c2d5a52-1" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"><!--Omitted--></o:BinarySecurityToken>
    <e:EncryptedData Id="_7" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns:e="http://www.w3.org/2001/04/xmlenc#">
    <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
    <e:CipherData>
    <e:CipherValue>
    <!--Omitted-->
    </e:CipherValue>
    </e:CipherData>
    </e:EncryptedData>
    <e:EncryptedData Id="_8" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns:e="http://www.w3.org/2001/04/xmlenc#">
    <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
    <e:CipherData>
    <e:CipherValue><!--Omitted--></e:CipherValue>
    </e:CipherData>
    </e:EncryptedData>
    </o:Security>
    </s:Header>
    <s:Body u:Id="_1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <e:EncryptedData Id="_2" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns:e="http://www.w3.org/2001/04/xmlenc#">
    <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
    <e:CipherData>
    <e:CipherValue><!--Omitted--></e:CipherValue>
    </e:CipherData>
    </e:EncryptedData>
    </s:Body>
    </s:Envelope>
    Using this configuration for the WCF CustomBinding
    <system.serviceModel>
    <bindings>
    <customBinding>
    <binding name="WSHttpBinding_IEnquiryRequest" >
    <transactionFlow />
    <security defaultAlgorithmSuite="TripleDesRsa15"
    authenticationMode="MutualCertificate"
    messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10"
    requireDerivedKeys="false"
    >
    <secureConversationBootstrap authenticationMode="CertificateOverTransport"
    messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10"
    requireDerivedKeys="false" />
    </security>
    <textMessageEncoding messageVersion="Soap11WSAddressing10" />
    <!--<mtomMessageEncoding messageVersion="Soap11WSAddressing10" />-->
    <httpsTransport requireClientCertificate="true" />
    </binding>
    </customBinding>
    </bindings>
    <behaviors>
    <endpointBehaviors>
    <behavior name="certBehaviour">
    <clientCredentials>
    <!-- clientCertificate not defaultCertificate -->
    <clientCertificate x509FindType="FindBySubjectName" storeLocation="CurrentUser" storeName="My" findValue="test_client" />
    <serviceCertificate>
    <defaultCertificate x509FindType="FindBySubjectName" storeLocation="CurrentUser" storeName="My" findValue="test_server"/>
    <authentication revocationMode="NoCheck" certificateValidationMode="None" />
    </serviceCertificate>
    </clientCredentials>
    </behavior>
    </endpointBehaviors>
    </behaviors>
    <client>
    <endpoint
    address="https://localhost:8089/pvs/ws"
    binding="customBinding"
    bindingConfiguration="WSHttpBinding_IEnquiryRequest"
    contract="XXXService.enquiryRequest"
    name="WSHttpBinding_IEnquiryRequest"
    behaviorConfiguration="certBehaviour"
    >
    <identity>
    <dns value="test_server"/>
    </identity>
    </endpoint>
    </client>
    </system.serviceModel>
    I've no idea how to insert the SAML 2.0 assertion in there before it's signed. That and the Key Issuer/serial issue above is where my main problems lie with the request.
    Any and all help appreciated
                        

    Yaron,
    Thanks a million for your response, think you hit the nail on the head there. Actually figured out the first part myself this morning, I've retrieved the SymmetricSecurityBindingElement object from the binding configured in the app.config and set it explicitly,
    just as you've defined. Couldnt figure out how to do this yesterday for some reason! Here's the code for anyone that's interested:
    //Get custom binding reference from app.config
    CustomBinding binding = new CustomBinding("bindingNameInConfig");
    // Reference the symmetric security element
    SymmetricSecurityBindingElement securityBindingElement = binding.Elements.Find<SymmetricSecurityBindingElement>();
    // Get the x509ProtectionParams from the security element
    X509SecurityTokenParameters tokenParameters = new X509SecurityTokenParameters();
    tokenParameters.X509ReferenceStyle = X509KeyIdentifierClauseType.IssuerSerial;
    tokenParameters.RequireDerivedKeys = false;
    tokenParameters.InclusionMode = SecurityTokenInclusionMode.AlwaysToInitiator;
    // Set the X509SecurityTokenParameters to point to the one's just configured. This is for symetric encryption, for asymetric this line needs to change
    securityBindingElement.ProtectionTokenParameters = tokenParameters;
    Are you sure that SAML assertion is not signed? That makes things a lot easier! Do you think the following approach will work when inserting in the SAML 2.0 assertion? :
    Create a class that inherits from IClientMessageInspector and insert the SAML as shown below
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.ServiceModel;
    using System.ServiceModel.Channels;
    using System.ServiceModel.Description;
    using System.ServiceModel.Dispatcher;
    using System.Text;
    using System.Xml;
    using Microsoft.IdentityModel.Protocols.XmlSignature;
    namespace TestClient.Application
    class Saml20Extension : IClientMessageInspector, IEndpointBehavior
    #region Implementation of IClientMessageInspector
    public object BeforeSendRequest(ref Message request, IClientChannel channel)
    MessageBuffer buffer = request.CreateBufferedCopy(int.MaxValue);
    // ** Add the SAML Assertion XML here **
    request = buffer.CreateMessage();
    return null;
    public void AfterReceiveReply(ref Message reply, object correlationState)
    MessageBuffer buffer = reply.CreateBufferedCopy(Int32.MaxValue);
    // ** REMOVE THE SAML ASSERTION HERE **
    reply = buffer.CreateMessage();
    #endregion
    #region Implementation of IEndpointBehavior
    public void AddBindingParameters(ServiceEndpoint endpoint, System.ServiceModel.Channels.BindingParameterCollection bindingParameters)
    public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
    // Add this implementation to the inspectors.
    clientRuntime.MessageInspectors.Add(this);
    public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher)
    public void Validate(ServiceEndpoint endpoint)
    #endregion
    Also, There's a second signature being inserted into my WCF request that I need to replace with the SAML insertion - how do i get rid of the second signature?? (see updated request below)
    POST https://localhost:8089/pvs/ws HTTP/1.1
    Content-Type: text/xml; charset=utf-8
    SOAPAction: ""
    Host: localhost:8089
    Content-Length: 6720
    Expect: 100-continue
    Accept-Encoding: gzip, deflate
    Connection: Keep-Alive
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <s:Header>
    <a:Action s:mustUnderstand="1" u:Id="_3"/>
    <a:MessageID u:Id="_4">urn:uuid:84dc0bb8-13fd-4e90-84c4-ed1e6e831801</a:MessageID>
    <ActivityId CorrelationId="07e0df62-d40a-4e24-aacc-12e626f80e8b" xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">40077c44-d415-4567-99a1-1ea610c41d94</ActivityId>
    <a:ReplyTo u:Id="_5">
    <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
    </a:ReplyTo>
    <VsDebuggerCausalityData xmlns="http://schemas.microsoft.com/vstudio/diagnostics/servicemodelsink">uIDPo1f0ZJ98FOxIvULl0pmGv/wAAAAAEGu5/G7VNkia/XbStJDa+ldqi+8xxdtAiBL+Y8vCqa0ACQAA</VsDebuggerCausalityData>
    <a:To s:mustUnderstand="1" u:Id="_6">https://localhost:8089/pvs/ws</a:To>
    <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <e:EncryptedKey Id="uuid-5b1de37e-ea76-4f75-b268-ebb63b554c11-1" xmlns:e="http://www.w3.org/2001/04/xmlenc#">
    <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
    <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
    <o:SecurityTokenReference>
    <X509Data>
    <X509IssuerSerial>
    <X509IssuerName>CN=test_server</X509IssuerName>
    <X509SerialNumber>123456789</X509SerialNumber>
    </X509IssuerSerial>
    </X509Data>
    </o:SecurityTokenReference>
    </KeyInfo>
    <e:CipherData>
    <e:CipherValue><!--Omitted--></e:CipherValue>
    </e:CipherData>
    <e:ReferenceList>
    <e:DataReference URI="#_2"/>
    </e:ReferenceList>
    </e:EncryptedKey>
    <o:BinarySecurityToken u:Id="uuid-d62ff21f-7e9b-460d-a0ee-d5fad221427d-1" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">MIIBpzCCARCgAwIBAgIETzKMfzANBgkqhkiG9w0BAQUFADAYMRYwFAYDVQQDDA10ZXN0X2ZhY2lsaXR5MB4XDTEyMDIwODE0NTM1MVoXDTE3MDIwODE0NTM1MVowGDEWMBQGA1UEAwwNdGVzdF9mYWNpbGl0eTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvzdwlxcpwRKGzLvpqYoS4NEbhbx/jV6Z6kyXgJ0IWLZAW20oWmxPwumsqkKr6bWX2NWbGrka6w1e9+iZFBKiBq5zzxJKusCJQtPjuYwjaTGjVTFnixHp9sKnjIEprKyarceG00WzCVdtuI1NpNp8dgemzA6FFt1ESwwELq+rKvECAwEAATANBgkqhkiG9w0BAQUFAAOBgQAokX6HZhhEj7Bfo0Z8ZeoZeYFB8pHrN5A6927cJx17EXWVv0Mwn/+fDgTAhtsN9DB68CFNejox8mM0+KewjsgT4z80YxMHGlpM13z4c8+iMiQcJ7cISScTBaTONOtDqK1WNtci8biNjnLn7+4Z4fw17jlttN0dPHC3fvGywh6TkQ==</o:BinarySecurityToken>
    <Signature Id="_0" xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
    <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/>
    <Reference URI="#_1">
    <Transforms>
    <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <DigestValue>
    <!--Omitted-->
    </DigestValue>
    </Reference>
    <Reference URI="#_3">
    <Transforms>
    <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <DigestValue>
    <!--Omitted-->
    </DigestValue>
    </Reference>
    <Reference URI="#_4">
    <Transforms>
    <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <DigestValue>
    <!--Omitted-->
    </DigestValue>
    </Reference>
    <Reference URI="#_5">
    <Transforms>
    <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <DigestValue>
    <!--Omitted-->
    </DigestValue>
    </Reference>
    <Reference URI="#_6">
    <Transforms>
    <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <DigestValue>
    <!--Omitted-->
    </DigestValue>
    </Reference>
    </SignedInfo>
    <SignatureValue>
    <!--Omitted-->
    </SignatureValue>
    <KeyInfo>
    <o:SecurityTokenReference k:TokenType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#EncryptedKey" xmlns:k="http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd">
    <o:Reference ValueType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#EncryptedKey" URI="#uuid-5b1de37e-ea76-4f75-b268-ebb63b554c11-1"/>
    </o:SecurityTokenReference>
    </KeyInfo>
    </Signature><!-- Why is this second signature here? how do i get rid of it and replace with SAML --> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
    <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
    <Reference URI="#_0">
    <Transforms>
    <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <DigestValue>
    <!--Omitted-->
    </DigestValue>
    </Reference>
    </SignedInfo>
    <SignatureValue>
    <!--Omitted-->
    </SignatureValue>
    <KeyInfo>
    <o:SecurityTokenReference>
    <o:Reference ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" URI="#uuid-d62ff21f-7e9b-460d-a0ee-d5fad221427d-1"/>
    </o:SecurityTokenReference>
    </KeyInfo>
    </Signature>
    </o:Security>
    </s:Header>
    <s:Body u:Id="_1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <e:EncryptedData Id="_2" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns:e="http://www.w3.org/2001/04/xmlenc#">
    <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
    <e:CipherData>
    <e:CipherValue>
    <!--Omitted-->
    </e:CipherValue>
    </e:CipherData>
    </e:EncryptedData>
    </s:Body>
    </s:Envelope>

  • Why cannot create instance to an abstract class?

    Dear Developers....
    abstract class can create be its own constructor but why they didn't create object

    We cann't create an object for abstract class
    because they have abstract methods which depends on
    its subclass for its implementation. if it is
    possible to create the object for abstract class
    means then you can call a method which has no
    implementation(abstract methods) which is a illegal
    one thats what the ruleWhat about classes with no abstract members?
    public abstract class A {}No danger of accessing anything illegal here.
    The rule is far more simple. By declaring a class as abstract, the creator defines that no instances of this class may exist. Period. If you could create instances, the class wouldn't be abstract anymore, per definition. It's like asking why a green light doesn't shine red. If it would, it wouldn't be green anymore.

  • Abstract Factory Pattern

    Hi All
    I have created the abstract class as shown below and I've got a number of concrete classes which implements it. When getFactory(String name) is called it addes an instance of a concrete class to the hashtable in the abstract class.
    My issue is that I would like all the concrete class to be added automatically (somehow) to the hashtable or have a method that gives my an overview of the available concrete classes so that a client can ask for them and then choose which one to pick. Is there a way to achieve this
    (PS: the KPI interface which is implemented only holds some public static fields)
    Thanks in advance
    Thomas
    import java.util.Collection;
    import java.util.Hashtable;
    * KPIFactory is declared abstract and requires implementation of the business methods
    * for each KPI.
    public abstract class KPIFactory implements KPI {
         * public static Hashtable which containes all the added KPIFactories
         * instances
        private static Hashtable KPI_FACTORIES = new Hashtable();
         * addFactory returns a KPIFactory from the given name.
         * <p/>
         * If the KPIFactory isn't already in the static Hashtable it will be
         * added if it can be found. All the Factories extending this class
         * will have a static body which adds it when class.forname is called.
         * If it cannot be found a KPINotFoundexcpetion is thrown
         * @param name of the class which implementes the KPIFactory
         * @return returns a KPIFactory if the
        public static KPIFactory getFactory(String name)
                throws KPINotFoundException {
            KPIFactory s = (KPIFactory) KPI_FACTORIES.get(name);
            if (s == null) // KPI not found
                try {
                    Class.forName(name);
                    // By now the static block in the KPI implemenation
                    // would have been executed, which addes a new instance
                    // to the static hashtable.
                    s = (KPIFactory) KPI_FACTORIES.get(name);
                    if (s == null) // Error is KPI isn't found now
                        throw (new KPINotFoundException());
                } catch (ClassNotFoundException e) {
                    // throws an exception to indicate that
                    // the KPIFactory could not be created
                    throw(new KPINotFoundException());
            return (s.create());   // Returns an instance of the KPIFactory
         * addFactory takes the manufactored object kpi and
         * puts it into the hashtable with the name as the key
         * <p/>
         * The method is syncronized in order to avoid problems with mutliple
         * factories writting to the hashtable at the same time
        public static synchronized void addFactory(String name, KPIFactory kpi) {
            KPI_FACTORIES.put(name, kpi);
         * create is abstract and returns a KPIFactory.
         * <p/>
         * create is implemented in every concrete class which
         * extends the KPIFactory and it returns an instance of
         * the concrete class (and therefore KPIFactory as the
         * super class)
         * @return returns a KPIFactory
        public abstract KPIFactory create();
        public abstract void calculate(KPIDataset dataset);
    }

    Hi,
    One "elegant" solution that comes to mind is to use AspectJ, for which you'd define as Aspect something like this:
    public aspect FactoryRegistrationAspect {
    /* A pointcut for calls to all implementing classes of KPIFactory */
    pointcut registerFactory (KPIFactory kpif, String name) :
    call (* * KPIFactory.getFactory(String)
    && within(KPIFactory+)
    && target(kpif)
    && args(name);
    /* When the above pointcut occurs, execute the following advice and invoke the registerIfNecessary
    method in your Abstract Factory clalss */
    before(KPIFactory kpif, String name) : registerFactory(kpif, name) {
    kpif.registerIfNecessary(name);
    In your abstact factory class, you'd then have the registerIfNecessary(String name) method. Which would look something like this:
    public boolean registerIfNecessary(String name) {
    if (!KPI_FACTORIES,containsKey(name)) {
    try {
    Class clazz = Class.forName(name);
    KPI_FACTORIES.add(name, (KPIFactory)clazz.newInstance());
    return true;
    catch (Exception e) { return false}
    The "magic" behind aspectJ is that it weaves the addition from the aspect into your implementing classes during compile time such that you don't need any property files etc to define your implementing classes, its all done by the aspecJ compiler during compile time.
    If the above is unlike what you've seen, check out the magic at eclipse.org/aspecj and get in on the greatest thing ever devised since OOP.
    Cheers
    Bones

  • Abstract Factory Design Pattern

    Could someone please explain the abstract factory design pattern in simple english. As far as I understand it is used to create a bunch of related objects based on parameter/s provided at runtime.
    However, why would one use this compared to an Interface.
    I actually am reading a great book on design patterns (Design Pattern by James Cooper) but having a bit of problem really understanding this one.
    Cheers

    As far as I
    understand it is used to create a bunch of related
    objects based on parameter/s provided at runtime. There may be variations but as I understand it basically an Abstract Factory defines two interfaces, one is the factory and one is the product. A good example is iterators in Java. The iterator factory is the Iterable interface and the iterator product is the Iterator interface.
    ArrayList implements Iterable so it's an iterator factory. If you call the iterator() method of an ArrayList object you'll get an Iterator object. The same applies to TreeSet and many other classes.
    The Iterator objects sport the same Interface but they're quite different internally of course (Iterating an array is not the same as iterating a tree) so they're a "family of related products".

  • Error While Creating Asset Class

    Hi Friends,
    I am getting the following error in development client while creating the asset class AB2200.
    "Screen Layout 200 was not created"  but the same was created.
    Please guide me how to handle this error and the reason for me getting this error message while creating asset class.
    Your quick response would be highly solicited.
    Thanks and Regards,
    C.R.Srinath

    Hi Srinath
    There are 2 things.. Create the screen layout and Define the screen layout... (IMG> AA > Master Data> Screen Layout for asset classes)
    Complete both the steps here and specify the same sccreen layout in your asset class
    Regards
    Ajay M

  • Web service proxy client class missing

    Hi,
    I am using Jdev 11g.
    I created web service proxy but I cannot find a client class.
    Where is a client class jdev created?
    This is jdev help I refered;
    Designing and Developing Applications &gt; Developing with Web Services &gt; Using Existing Web Services in Applications &gt; Creating Web Service Proxies &gt; Using Web Service Proxies
    Thanks

    Hi,
    I created a client class with jdev10134 and put class in my jdev11g project.
    I got following error when run client class
    Exception in thread "main" java.lang.Error: Jaxrpc 1.1 method is not supported.
         at weblogic.webservice.core.rpc.ServiceFactoryImpl.loadService(ServiceFactoryImpl.java:65)
    I found this thread.
    "Jaxrpc 1.1 method not supported" when running jdev ws-proxy on weblogic
    I checked WLS10.3 release note, it seems supported.
    Please could someone help me?
    Thanks
    Edited by: user10445424 on 2008/11/10 17:21

  • Invoking a method in WSDL file from client class

    Hi,
    I have got a WSDL file and I have to invoke certian methods from a client class from the WSDL file. What exactly should I do to invoke them from a Java standalone program /servlet/JSP. There is a sayHello() method in the WSDL. Please tell me how to invoke that method from client side. Aslo please let me know the jar files that are needed.
    Below is the WSDL file
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions targetNamespace="http://tutorial.com" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://tutorial.com" xmlns:intf="http://tutorial.com" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <!--WSDL created by Apache Axis version: 1.2.1Built on Jun 14, 2005 (09:15:57 EDT)-->
    <wsdl:message name="sayHelloResponse">
    </wsdl:message>
    <wsdl:message name="sayHelloResponse1">
    <wsdl:part name="sayHelloReturn" type="xsd:string"/>
    </wsdl:message>
    <wsdl:message name="addRequest">
    <wsdl:part name="a" type="xsd:int"/>
    <wsdl:part name="b" type="xsd:int"/>
    </wsdl:message>
    <wsdl:message name="sayHelloRequest">
    </wsdl:message>
    <wsdl:message name="addResponse">
    <wsdl:part name="addReturn" type="xsd:int"/>
    </wsdl:message>
    <wsdl:message name="sayHelloRequest1">
    <wsdl:part name="name" type="xsd:string"/>
    </wsdl:message>
    <wsdl:portType name="Hello">
    <wsdl:operation name="sayHello">
    <wsdl:input message="impl:sayHelloRequest" name="sayHelloRequest"/>
    <wsdl:output message="impl:sayHelloResponse" name="sayHelloResponse"/>
    </wsdl:operation>
    <wsdl:operation name="sayHello" parameterOrder="name">
    <wsdl:input message="impl:sayHelloRequest1" name="sayHelloRequest1"/>
    <wsdl:output message="impl:sayHelloResponse1" name="sayHelloResponse1"/>
    </wsdl:operation>
    <wsdl:operation name="add" parameterOrder="a b">
    <wsdl:input message="impl:addRequest" name="addRequest"/>
    <wsdl:output message="impl:addResponse" name="addResponse"/>
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="HelloSoapBinding" type="impl:Hello">
    <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="sayHello">
    <wsdlsoap:operation soapAction=""/>
    <wsdl:input name="sayHelloRequest">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://tutorial.com" use="encoded"/>
    </wsdl:input>
    <wsdl:output name="sayHelloResponse">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://tutorial.com" use="encoded"/>
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="sayHello">
    <wsdlsoap:operation soapAction=""/>
    <wsdl:input name="sayHelloRequest1">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://tutorial.com" use="encoded"/>
    </wsdl:input>
    <wsdl:output name="sayHelloResponse1">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://tutorial.com" use="encoded"/>
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="add">
    <wsdlsoap:operation soapAction=""/>
    <wsdl:input name="addRequest">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://tutorial.com" use="encoded"/>
    </wsdl:input>
    <wsdl:output name="addResponse">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://tutorial.com" use="encoded"/>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="HelloService">
    <wsdl:port binding="impl:HelloSoapBinding" name="Hello">
    <wsdlsoap:address location="http://localhost/WebService1/services/Hello"/>
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    Thanks in advance
    Prashanth

    Hi.
    Please put this line in the google search engine "Invoking java web service" u will get lots of the links.
    Sanjay Kumar Gupta
    [email protected]

  • Creating a class library in VS2013 that can be referenced by a VB6 application and newer applications

    I need to create a class library in VS2013 that can be referenced by a VB6 application and newer applications. I heard something about
    COM Interop but have no idea where to start. I am assuming I would develop a class library in VS2013 and then package the assembly for COM. Any good sample projects on this out there?

    Hello,
    >> Any good sample projects on this out there?
    Not suer if you are using C# as the develop language, if it is, i think you would find a lot of articles about this topic with your favorite search engine, here are some related links:
    COM Interop Part 1: C# Client Tutorial
    COM Interop Part 2: C# Server Tutorial
    Regards.
    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.

  • How to create 3 Classes from one

    Hello,
    I have one Databeseconnection class. But I would like creating 3 classes so that I have one connection class, one insert class and one select class.
    How Can I do It? Could you help me, please?
    package Test; import java.util.*; import java.sql.*; public class JavaDBTest { public static void main(String[] args){ Connection dbconn = null; Statement stmt=null; String mysqlHost = "localhost"; String mysqlDB = "dbname"; String mysqlUser = "root"; String mysqlPass = ""; int id=0; //open connection try { if(dbconn == null || dbconn.isClosed()) { // Load the JDBC driver. Class.forName("com.mysql.jdbc.Driver"); DriverManager.setLoginTimeout(10); // Establish the connection to the database. dbconn = DriverManager.getConnection("jdbc:mysql://" + mysqlHost + "/" + mysqlDB, mysqlUser, mysqlPass); stmt = dbconn.createStatement(); } } catch (Exception e) { System.out.println(e); } //Statements try { stmt.executeUpdate("INSERT INTO tabelename (RFID_Tagid,pub_type_id,Owner_id,Standort_id,user_id,year,actualyear,title,bibtex_id,report_type,survey,mark,series,volume,publisher,location,issn,isbn,firstpage,lastpage,journal,booktitle,number,institution,address,chapter,edition,howpublished,month,organization,school,note,abstract,url,doi,crossref,namekey,userfields,specialchars,cleanjournal,cleantitle,cleanauthor,read_access_level,edit_access_level,derived_read_access_level,derived_edit_access_level,pages,Signatur,roles_ids,entleihbarFuer,vormerkbarFuer,SichtbarFuer) VALUES (1,2,3,4,5,1998,2010,'ichbin titel','1','r',3,2,'s','volume','publis','location','issn','isbn','firstpage','lastpage','journal','booktitle','number','institution','address','chapter','edition','howpublished','month','organisation','school','note','abstract','url','doi','crossref','namekey','userfields',true,'cleanjournal','cleantitle','cleanautor',1,3,4,5,'pages','signatur','roles-ids','entleihbar','vorm','sichtb');"); ResultSet rs = stmt.executeQuery("SELECT LAST_INSERT_ID();"); rs.next(); id = rs.getInt(1); } catch (Exception e) { System.out.println(e); } System.out.println(id+""); try { ResultSet rs = stmt.executeQuery("SELECT * FROM tablename;"); while(rs.next()) { System.out.println(Integer.valueOf(rs.getString(1))); System.out.println(rs.getString(2)); System.out.println(rs.getString(3)); } } catch (Exception e) { System.out.println(e); } //close connection try { dbconn.close(); dbconn = null; } catch (Exception e) { System.out.println(e); } } }

    suneclipse wrote:
    Could you please write in java code?no doubt. So can anyone with a grain of common sense.
    That's not to say we're going to do your work for you.

  • Cannot create client error with sample SAP JCO code

    Hi,
    I am encountering the following error when trying to connect to a R/3 system using the WAS 6.40 on my laptop. I have cut and pasted the Example1 code from the SAPJCO into my NetWeaver developer studio IDE.
    java.lang.UnsatisfiedLinkError: no CpicNative in java.library.path
         at java.lang.ClassLoader.loadLibrary(Unknown Source)
         at java.lang.Runtime.loadLibrary0(Unknown Source)
         at java.lang.System.loadLibrary(Unknown Source)
         at com.sap.mw.rfc.api.RfcApi.initializeDLL(RfcApi.java:1285)
         at com.sap.mw.rfc.api.RfcApi.<clinit>(RfcApi.java:1299)
         at com.sap.mw.jco.MiddlewareJRfc.<clinit>(MiddlewareJRfc.java:228)
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Unknown Source)
         at com.sap.mw.jco.JCO.<clinit>(JCO.java:630)
         at com.sap.mw.jco.support.JRfcTest.correctProperties(JRfcTest.java:1043)
         at com.sap.mw.jco.support.JRfcTest.initCall(JRfcTest.java:1072)
         at com.sap.mw.jco.support.JRfcTest.runConnectionTest(JRfcTest.java:735)
         at com.sap.mw.jco.support.JRfcTest.main(JRfcTest.java:202)
    Cannot create client, error message:
    java.lang.NoClassDefFoundError occured:
       Message:null
    I have a system user defined in R/3 but still this isn't working. I am new to Java so any light you could shed would be greatly appreciated.
    Cheers and TIA,
    Rich

    The unsatisfied link error should be because sapjco.jar cannot link to the sapjco.dll.
    I tried to simulate the problem by
    1) Opening a java perspective.
    2) Create a new 'java' project.
    3) Add libraries sapjco.jar from the path <Drive>:\Program Files\SAP\JDT\eclipse\plugins\com.sap.mw.jco\lib
    You will see sapjcorfc.dll in this path
    4)Add a new class file ,Wrote a sample jco code and executed and it worked..
    The key is to have the sapjcorfc.dll in the same directory as sapjco.jar
    I hope this helps

  • OLAP client classes are missing - BIB-16626

    Hello
    BI Beans Diagnostics(v1.0.0.0) 11/12/03
    ===============================================================================
    JDEV_ORACLE_HOME ............................. = C:\JDev9032
    JAVA_HOME .................................... = C:\JDev9032\jdk
    JDeveloper version ........................... = 9.0.3.2.1145
    BI Beans version ............................. = 9.0.3.6.0
    BI Beans internal version .................... = 2.7.0.13.1
    Connect to database .......................... = Successful
    JDBC driver version .......................... = 9.2.0.3.0
    JDBC JAR file location ....................... = C:\JDev9032\jdbc\lib
    Database version ............................. = 9.2.0.4.0
    OLAP Catalog version ......................... = 9.2.0.4.1
    OLAP AW Engine version ....................... = 9.2.0.4.1
    OLAP API Server version ...................... = 9.2.0.4.1
    BI Beans Catalog version ..................... = N/A; not installed in BIBDEMO
    OLAP API JAR file version .................... = N/A
    OLAP API JAR file location ................... = C:\JDev9032\jdev\lib\ext
    Load OLAP API metadata ....................... = Unsuccessful
    Error: BIB-10100 Cannot connect to the database. (Reason: See error BIB-16626)
    See C:\JDev9032\bibeans\bin\bi_error.log
    BIB-16626 Cannot connect to the database because OLAP client classes are missing.
    Cause: The CLASSPATH setting does not contain the OLAP client classes (olap_api_xx.zip).
    Action: Include the OLAP client classes in the CLASSPATH setting.
    I tried to add the olap_api_92.jar to the Classpath, I restarted my machine, I reexecuted the \olap\admin\olapu92041.sql, the cwmlite\admin\amdpatch.sql and the olap\admin\olap.sql script... But nothing helped.
    At First all was going wright, then I created some own Dimensions, a cube and materialzed views...
    Can somebody please tell me how I can solve this problem?

    Sorry I placed it in the wrong forum... ;)

  • Failed to create client for Net8 Service

    Using Windows 2000.
    I have tried to install Oracle Forms and Reports 6i and Oracle 8i Personal Edition six times now with no success. I install Forms and Reports first. However, I am unable to get past an error when installing the Reports. The error message states "Failed to create client for Net8 Service". I get the erro about 30 seconds into the installation of Reports. Forms installs just fine.
    The procedure I am using can be found at course.com using the ISBN # 0-619-03549-8 and the instructions for the 2nd edition of the "Enhanced Guide to Oracle 8i" by Morrison and Morrison for Windows 2000. This is for a class that I am taking at DeVry.
    I have followed the instructions to a "T" during the installation process and also for when I uninstall the software to try it again.
    Is there a simple answer to why the software can't create the Client for Net8 Service?
    Any help would be appreciated.
    Thanks
    Leo Donahue

    Hi ...
    I don't know whether urs and mine is the same scenario..
    I have tried to install forms in windows XP also. getting the same error message. One more thing. I was trying install forms and reports. If 'm installing forms first,It'll get installed with out any probs. Then this error will come in reports installation and vice versa.. 'm getting it from 3 workstations. plssss help me....
    Any help will b greatly appreciated..
    thanks.

  • BI Java-Client Class wizard not started

    Hi all,
    I follow the steps described in http://www.oracle.com/technology/obe/obe_bi/bibeans/bibeans_1012/buildbibeansapps/generatejavaapp.htm
    to build BI Beans Java client application.
    But when I create new Business Intelligence Beans --> Client Tier for OLAP --> Java-Client Class, the BI Java-Client Class wizard not displayed.
    Has anyone get this situation? Please help me.
    The version of Jdeveloper is 10.1.2.2.0 (build 1929) and BI Beans is 10.1.2.2
    Thanks very much.

    That's because a bug in BI bean 10.1.2.2.
    I have to use Jdeveloper 10.1.2.1 with BI Bean 10.1.2.1. I pass that error but another occur :(

  • Can't get a client class to run

    hi all,
    this is my first post and i'm a j2ee newbie.
    I'm studying a book 'headfirst ejb' at the moment. i've installed the server and configurated everything. the first example in the book creates a simple application where there's a string[] full of strings which are advice eg "don't eat yellow snow" :) i've three files AdviceBean, AdviceHome and advice. i can post the code if necessary. i've used the deploytool and compiled and deployed them to the server, everythings fine so far. i then have to run a client use the bean. the client class compiles but when i try to run the client it gives me a 'java.lang.noclassdeffounderror : AdviceClient '
    this is what i typed to run the client
    java -cp {$CLASSPATH}:AdviceAppClient.jar;C:\j2sdkee1.3.1\lib\j2ee.jar;C:\projects\advice\classes AdviceClient
    has anyone got this book or can help?
    thanks in advance
    mat

    sorry to double post but here are the.java files, the 1st 3 are on the server and the forth one is the one that is giving me the error.
    Advice.java
    package headfirst;
    import javax.ejb.*;
    import java.rmi.RemoteException;
    public interface Advice extends EJBObject{
         public String getAdvice() throws RemoteException;
    }AdviceBean.java
    package headfirst;
    import javax.ejb.*;
    public class AdviceBean implements SessionBean {
         private String[] adviceStrings = {"bbbbbbbb", "vvvvvvv", "gggggggggg"
    , "jjjjjjj", "rrrrrrr", "qqqqqqqq"};
         public void ejbActivate(){
              System.out.println("ejb activate");
         public void ejbPassivate(){
              System.out.println("ejb passivate");
         public void ejbRemove(){
              System.out.println("ejb remove");
         public void setSessionContext(SessionContext ctx){
              System.out.println("SessionContext");
         public String getAdvice(){
              System.out.println("in getadvice");
              int random = (int) (Math.random() * adviceStrings.length);
              return adviceStrings[random];
         public void ejbCreate(){
              System.out.println("in ejbCreate");
    }AdviceHome.java
    package headfirst;
    import javax.ejb.*;
    import java.rmi.RemoteException;
    public interface AdviceHome extends EJBHome{
         public Advice create() throws  CreateException, RemoteException;
    }AdviceClient.java
    import javax.naming.*;
    import java.rmi.*;
    import javax.rmi.*;
    import headfirst.*;
    import javax.ejb.*;
    public class AdviceClient {
         public static void main (String[] args){
              new AdviceClient().go();
              }  // end of main
         public void go() {
              try{
              Context ic = new InitialContext();
              Object o = ic.lookup("Advisor");
              AdviceHome home = (AdviceHome) PortableRemoteObject.narrow(o, AdviceHome.class);
              Advice advisor = home.create();
              System.out.println(advisor.getAdvice());
              } catch (Exception ex) {
              ex.printStackTrace();
              } // end of try|catch
         } // end of go
    } // end of class

Maybe you are looking for