Monday 27 November 2017

Sabão Delphi 2010 Delforex


Aqui é uma pergunta de tecnologia para não-tech Eu não tive ocasião de querer fazer isso antes, então I39m esperando alguém pode me iluminar. Eu tenho um aplicativo construído em D7, e é bastante complexo em sua funcionalidade. É possível reconstruir o aplicativo para executar como um serviço. Isso exigiria separar a interface do usuário do aplicativo. Obrigado, Bill William Meyer escreveu em 4222010. gt. Eu não tive ocasião de querer fazer isso antes, então eu estou esperando que alguém possa me esclareça. Eu tenho um aplicativo construído em D7, e é bastante gt complexo em sua funcionalidade. É possível reconstruir o aplicativo para executar gt como um serviço. Testing Non-Tech Eu não vi nada por três dias neste grupo - Q 01242014 15:15:19 1.19.1.372 Q39sBrokenToolBar Correndo no TQ Quentin Correll escreveu: gt Eu nunca vi nada por três dias neste grupo Como isso pode ser você Respondeu a um post de Nick em thread quotTest o bestquot hoje. - Arno Arno, Como isso pode ser Você respondeu a um post de Nick no thread quotTest o bestquot hoje. Curiosamente, eu poderia publicar. Ltggt Mas eu não tinha certeza sobre isso desde XN didn39t quotreceivequot nada até que eu fiz. Mercado Delphi inexistente Parece que o mercado de contratação de desenvolvimento para a Delphi secou. Alguém está encontrando contratos Não emprego, contrato de trabalho. Gt gt Parece que o mercado de contratação de desenvolvimento para a Delphi secou. Onde gt Alguém está encontrando contratos Não é emprego, trabalho por contrato. Sim - Atenciosamente Bruce McGee Software Glooscap gt gt gt Onde os EUA. Gt gt Sim BTW, você está mantendo mais de 2 pessoas empregadas em tempo integral gt gt Os EUA. Testes não-técnicos de testes rejeitados. Ontem, minhas postagens para não-tecnológicas foram quotrejectadas. quot - Q 04052012 09:16:20 XanaNews Versão 1.19.1.278 Q39sBrokenToolBar Quentin, Testing. Ontem meus posts para não-tech estavam sendo quotrejected. quot Parece que apenas as minhas respostas estão sendo rejeitadas. - Q 04052012 09:19:30 XanaNews Versão 1.19.1.278 Q39sBrokenToolBar Quentin, Testando. Ontem meus posts para não-tech estavam sendo quotrejected. quot Parece que apenas as minhas respostas estão sendo rejeitadas. Esta resposta w. Delphi XE5 Oi, Acabei de instalar o XE5. Não existe nenhum arquivo setuppaserver. zip. Onde posso obtê-lo Joe gt gt Oi, gt gt Apenas instalado XE5. Não existe nenhum arquivo setuppaserver. zip. Gt gt Onde posso obtê-lo gt gt Joe Apenas percebi que o seu arquivo. Pkg. Delphi e Delphi para Parece que Delphi para é mais lento do que Delphi Win32 nativo applicaiton. Gostaria de saber se é verdade que todas as aplicações são mais lentas do que Win32 native applicaiton ou é Delphi para apenas. Sua informação é muito apreciada, Inung On 2011-06-21 18:20:17 0100, Inung Huang disse: gt Parece que Delphi para é mais lento do que Delphi Win32 nativo applicaiton. Gt Gostaria de saber se é verdade que todas as aplicações são mais lentas do que o gt Win32 native applicaiton ou é Delphi para apenas. Se você está apenas executando o código no aplicativo uma vez, então, sim, yo. D2009 Datasnap de clientes não-Delphi D2009 Datasnap seguir quaisquer normas para chamar de clientes não-padrão. por exemplo. PHP chamando a camada intermediária D2009. Obrigado CB Christopher Burke escreveu: gt Does D2009 Datasnap seguir quaisquer normas para chamar de clientes não-padrão gt. JSON - baseado no ECMAScript (JavaScript). Cheers Rob H -. Não-tech com uma pergunta de cópia de arquivo Posso simplesmente copiar ou backuprestore meu emailcalendaretc GW55. Arquivos para outro servidor se meu servidor original caiu ou I39m mudando para um novo servidor eu suponho que eu precisaria descarregar GW, mas que arquivos eu iria copiar Obrigado. explicar. Você quer dizer o PO inteiro ou o quê. elucidar. - Michael J. Bell Novell Suporte Conexão Voluntário Sysop Autor de Guinevere (openhandhome) POR FAVOR: Não me envie um e-mail privado a menos que especificamente perguntou. I39m um voluntário, não um empregado Novell Todas as opiniões e conselhos fornecidos são MINE sozinho e NÃO Novell. Não-VCL ZIP classcomponent queria Hi, I39m procurando um classcomponent ZIP que doesn39t usar qualquer unidades VCL. Ele deve suportar os nomes de arquivos Unicode embora, eu sei que o suporte a ZIP no XE, mas isso não é suficiente. - Arno Garrels Em 962012 10:33, Arno Garrels escreveu: gt I39m procurando um classcomponent ZIP que doesn39t usar qualquer VCL gt unitstuff. Ele deve suportar os nomes de arquivos Unicode embora, eu sei que o gt ZIP tem suporte no XE, mas isso não é suficiente. A maioria dos componentes de fecho de correr de terceiros são componentes não visuais, por isso não dependem da VCL. Abrevia tem algum visu. Servindo dados para o cliente (não-Delphi) Eu ficaria grato por alguns conselhos sobre a melhor maneira de projetar um serviço da Web Delphi para interoperar com um cliente que não seja Delphi. O plano é usar o RAD Studio 2007 para gravar um servidor SOAP para transferir conjuntos de dados para e de um cliente remoto. A extremidade do cliente é parte de um Web site que está sendo construído por um outro partido. Os conjuntos de dados contêm registros com tipos de dados simples e BLOBs. Minha preferência seria escrever o servidor SOAP como um aplicativo WIN32 nativo, mas minha impressão é que isso exigiria uma grande quantidade de código de serialização personalizado para ser escrito. Usando Zip no Delphi XE5, exemplos em qualquer lugar Por anos eu usei um dll externo para compactar arquivos de dados juntos em um único arquivo zip. Os autores do arquivo zip32.pas e da DLL associada são Theo Bebekis e Marcus Wirth e no arquivo há menção de Info-Zip. As fontes que eu uso são de janeiro de 2000. De qualquer forma, já que agora estou convertendo o antigo aplicativo do Delphi7 para o XE5, eu gostaria de usar a funcionalidade de zip incorporada, mas tenho problemas para encontrar exemplos de como usar o System. Zip. Alguém pode aqui me apontar para um exemplo de trabalho que pacotes de arquivos em um zip SEM também recheio no original p. Delphi XE5 Oi, Enquanto I39m excessivamente satisfeito com Delphi XE5 (ao lado de algumas coisas estranhas), há 1 coisa que é realmente irritante: a ampulheta sem parar no IDE. Quando eu duplo clique em uma palavra para selecionar: ampulheta. Quando eu mover o cursor 2 espaços: ampulheta. Deslocamento: ampulheta. Ao digitar alguns caracteres: ampulheta. E isso é realmente o tempo todo. O IDE congela e I39m perde muito tempo sempre esperando para continuar. Estou perguntando por que o Embarcadero não resolve problemas como este. Eu descobri que desativar quotCode par ametersquot, quotTooltip expression evaluationquot, q. Delphi XE2 - System. Zip Oi. Atualmente, estou usando os componentes quotVCLZipquot 3 para gerar e manipular arquivos zip. Quero adotar o meu código para usar o TZip do System. Zip, já que o VCLZip não é mais mantido e não há nenhuma versão oficial para o Delphi XE2. Falta funções para renomear (ou remover) arquivos dentro de um arquivo zip existente. Pode alguém por favor me dê um conselho como isso pode ser feito com System. Zip Obrigado pela sua ajuda Em 162012 04:27, Ajoschi Roth escreveu: gt Estou faltando funções para renomear (ou remover) arquivos dentro de um arquivo zip existente. Alguém pode me dar um. Criando arquivos zip não-copiáveis ​​download em VS2008 Oi, estou pensando em vender quothow toquot vídeos do meu site que eu vou permitir que os usuários authrenticated para fazer o download. No entanto, a fim de impedi-los redistribuindo-os a outros (Deus me livre), eu preciso de uma maneira de restringir seus downloads para ser utilizável apenas em say1, 2 ou 3 machines. I ouviram falar de DRM, mas não sei como ele funciona, I39m Wndering se VS2008 tem qualquer coisa acima da luva que eu posso usar. Todas as idéias, como sempre, agradeceu Paul VS não tem tais facilidades. Além disso, copiar arquivos sempre é possível. DRM pode impedir os usuários de abrir arquivos. For. Creating and Consuming Soap Services em Delphi. UPDATE Para um exemplo completo de construir um cliente de serviço JSON RESTful com Delphi e um serviço JSON RESTful usando o PHP, confira minha série de vídeos 8220Brutally Roll Your Your Backend 8221 Para quem espera a próxima parte da minha série de sprites, desculpe o atraso. It8217ll vem, mas o trabalho vem primeiro Hoje I8217d gosta de mostrar como você pode criar e consumir serviços web baseados em SOAP. Esta é uma pergunta freqüente de meus clientes, e assim I8217ve decidiu escrever o processo aqui. Editar: Delphi pode consumir qualquer serviço SOAP como um cliente, no entanto, os serviços SOAP do lado do servidor criados usando Delphi serão baseados em RPC ao invés de Literal Document. Isso pode causar problemas ao consumir serviços SOAP da Delphi de alguns clientes. It8217s particularmente difícil com clientes baseados em Java, o que requer a instalação de bibliotecas mais antigas. Parece haver pouco desejo no Embarcadero de atualizar o servidor SOAP, devido ao declínio da popularidade do SOAP em favor dos serviços baseados em JSONREST. Se você deseja hospedar serviços para uso de Java, ou algum outro conjunto de desenvolvimento que não é compatível com RPCSOAP, considere os serviços JSONREST que podem ser criados usando as tecnologias Datasnap ou EMS do Embarcadero. - Editar termina. SOAP é abreviação de Simple Object Access Protocol. Ou seja, it8217s um protocolo que permite que o seu aplicativo para acessar 8216objects8217, o que significa objetos de dados através de suas propriedades e métodos. Para colocar isso em termos mais diretos, ele é um protocolo que permite acessar dados remotos ou chamar procedimentos remotos. Isso é semelhante em muitos aspectos aos serviços RESTJSON que I8217ve blogged sobre anteriormente, no entanto, dados SOAP são transmitidos usando um wrapper XML, geralmente em um HTTP ou TCPIP direto. Outra diferença importante entre os serviços SOAP e os serviços RESTJSON é que os serviços SOAP estão em conformidade com um contrato predefinido que descreve as estruturas e métodos de dados disponíveis, este contrato é descrito no arquivo WSDL (Web Services Definition Language). Cuidado, alguns fornecedores de tecnologia de sabão esquecem o que significa a palavra 8216S8217 em 8216SOAP8217, sem nome. Criando um serviço SOAP. Vamos criar um serviço SOAP usando o Delphi. I8217m usando uma versão inicial do XE8, embora eu usei essas etapas mais ou menos sem alterações desde o Delphi 7, então isso deveria funcionar em qualquer versão. Dito isto, houve uma atualização importante para esta tecnologia em uma das versões anteriores do XE, então o mais parecido com os meus passos será o XE45 ou superior, mas você deve ter pouca dificuldade em versões anteriores. Inicie o IDE de Delphi e selecione 8220File Novos outros projetos do Delphi - gt Serviços da Web - use o SOAP Server Application8221 (pode variar com a versão ou edição do Delphi Rad Studio. É necessário que o item 8220Delphi Projects8221 possa ser omitido.) O Assistente que é apresentado oferece Várias opções. A maneira mais comum de hospedar um serviço SOAP é como um módulo de servidor web, como um link dinâmico 8220ISAPI library8221 para o servidor web Microsoft8217s 8220IIS8221. Observação: Ao criar um ISAPI usando versões de 32 bits do compilador, you8217ll precisará alterar uma configuração no pool de aplicativos do IIS para habilitar o código executável de 32 bits em um servidor de 64 bits. Defina seu destino de compilação para 64 bits em versões modernas do Delphi para evitar isso. Para os fins desta instrução no entanto, vamos selecionar 8220Stand-alone application.8221 It8217s relativamente trivial para converter este projeto em um projeto ISAPI, que I8217ll demonstrar mais tarde. Por enquanto, vá em frente e selecione a aplicação 8220Stand-alone.8221 A próxima etapa no assistente pergunta se você gosta de usar as estruturas 8220VCL8221 ou 8220FMX8221 8220Firemonkey8221 atrás do seu código de serviço da Web. There8217s pequena distinção entre 8220VCL8221 e 8220FMX8221 para código não visual na plataforma do Windows, então vamos manter o bom e antigo 8220VCL8221 de confiança. A próxima etapa do assistente permite que você selecione o número da porta em que seu serviço executável autônomo será executado. Quando este projeto for convertido em um IIS ou outro aplicativo do servidor web mais tarde, a porta será a qualquer porta em que o servidor da Web esteja executando a DLL (geralmente 808080443 para HTTP ou HTTPS). Portanto, o número de porta que selecionamos aqui não importa muito, contanto que ele não choca com algum outro serviço em execução na mesma máquina. Você pode testar isso com o botão 8220Test Port8221. I8217m vai ficar na porta 8080, se você selecionar uma porta diferente you8217ll precisa ajustar qualquer url8217s que eu lhe dou mais tarde. Depois de clicar no 8220Finish8221 do assistente, o Delphi irá trabalhar para construir seu projeto de aplicativo de servidor SOAP. Quando it8217s estiverem fechados, ele apresentará a seguinte caixa de diálogo8230. Esta caixa de diálogo está perguntando se você gosta de criar um 8220end-point8221 para o seu serviço da Web, ou pelo menos that8217s que o it8217s chamou em algumas outras estruturas SOAP que I8217ve encontrou. Esses frameworks tipicamente só permitem que você hospede um único ponto final por serviço, pelo menos sem alguma configuração, mas o Delphi permitirá que você hospede quantos quiser. Para que este serviço seja útil em tudo, você deve adicionar pelo menos um, então vá em frente e clique em 8220YES8221. A próxima caixa de diálogo é onde você irá nomear o ponto final do serviço que você vai criar. Nesta caixa de diálogo você também tem a opção de adicionar alguns métodos de amostra, que serão desmarcados por padrão. Certifique-se de que esta opção esteja marcada, já que vamos usar os métodos de exemplo mais tarde. O Delphi já criou um aplicativo de serviço para você, e it8217s um serviço de trabalho completo com alguns métodos de exemplo para você também ligar. Antes de dar uma olhada no serviço, vamos configurar alguns diretórios e salvar o projeto. Vamos criar três projetos diferentes no total. O primeiro, we8217ve apenas criado. Esta é a aplicação do lado do servidor. Um segundo será uma versão ISAPI do mesmo serviço (desde que eu prometi I8217d mostrar como). O terceiro será um aplicativo cliente capaz de chamar o serviço. We8217ll adicionar todos os três a um grupo de projeto. Em algum lugar no seu disco (não importa muito onde, onde sempre você geralmente mantém seus projetos), crie a seguinte estrutura de diretório8230 Agora, de volta no IDE de Delphi selecione 8220File Salvar tudo8221 Salve os arquivos da seguinte forma8230 SoapServiceSampleServerunitsMyServiceIntf. pas SoapServiceSampleServerunitsMyServiceImpl. pas SoapServiceSampleServerformsFormUnit1. Pas SoapServiceSampleServerunitsWebModuleUnit1.pas SoapServiceSampleServerprojectsStandAloneService. dproj Certifique-se de observar as alterações no diretório e I8217ve renomeou o projeto para 8220StandAloneService. dproj8221 O objetivo desses arquivos é o seguinte8230 MyServiceIntf. pas 8211 A parte de interface do seu serviço, usada para gerar o WSDL Arquivo. MyServiceImpl. pas 8211 A implementação do seu serviço. FormUnit1.pas 8211 Usado para fornecer uma interface do usuário para o aplicativo de serviço autônomo, isso não é relevante na conversão para módulos ISAPI ou Apache. WebModuleUnit. pas 8211 O módulo da Web hospeda seus pontos de extremidade de serviço (interfaceimplementation) e solicita os marshals através do mapeamento de URL. StandAloneService. dproj 8211 O arquivo de projeto. Agora estamos prontos para ver o serviço em ação pela primeira vez. Vá em frente e execute o aplicativo. Você deve ver o seguinte8230 Não é o aplicativo mais bonito que está sendo, mas não precisa ser, porque esta aplicação é meramente o aplicativo de serviço autônomo que we8217ll está usando para depurar o serviço. Clique no botão 8220Start8221 para iniciar o serviço em execução (aceite quaisquer avisos de segurança relativos ao firewall) e, em seguida, clique em 8220 Abra o Navegador82218230. Note, se por algum motivo o seu navegador não abrir, o que pode acontecer de acordo com sua configuração, abra um navegador e Navegue para localhost: 8080 O que você pode ver no navegador é uma interface baseada em HTML para o seu serviço. Existem duas interfaces publicadas, 8216IMyService8217 e 8216IWSDLPublish8217, das quais, o primeiro é o seu novo ponto final de serviço e o posterior é um ponto final gerado pelo sistema para fins que we8217ll não está investigando aqui. Se você clicar no link 8216WSDL8217 à direita de 8216IMyService8217, você verá um arquivo XML grande produzido. Este arquivo é o arquivo WSDL que o aplicativo cliente usará para descobrir os recursos do seu serviço. Tome nota da alteração na barra de URL quando você faz this8230 You8217ll aviso que 8216wsdlIMyService8217 foi adicionado à seqüência de url. É assim que abordamos o arquivo wsdl para qualquer interface de ponto final de serviço particular que criamos, basta anexar 8216wsdlIltendpoint-namegt8217 à url base. O WSDL fornece detalhes sobre o que seu serviço é capaz e quais tipos de dados (objetos) ele suporta. Antes de continuar a escrever um aplicativo cliente para consumir esse serviço, gostaria de apontar algumas coisas nos arquivos de interface e implementação. Vá em frente e abra 8216MyServiceIntf. pas8217 no IDE. Ao se aproximar da parte inferior do arquivo, você verá esta interface declarada8230 Esta é a interface que é usada para criar o arquivo WSDL definindo os recursos do serviço. Algo a notar aqui é que a convenção de chamada para cada um dos métodos suportados é 8216sdtcall8217. Essa é a convenção de chamada padrão do Windows, que é imposta em nosso serviço pela suposição de que ele será convertido em um módulo ISAPI mais tarde. It8217s seguro para usar 8216stdcall8217 para apache módulos eo executável autônomo também, e assim o IDE assumiu esta convenção de chamada para todos os serviços. Don8217t esquecer de incluí-lo em sua interface, e arquivos de implementação quando você está escrevendo seus métodos do lado do servidor. Acima da interface IMyService neste arquivo, you8217ll notar alguns tipos de dados declarados8230 Tipos de dados simples que mapeiam para os tipos de dados Delphi básicos não precisam de nenhum tratamento especial. Por exemplo, 8216TEnumTest8217 e 8216TDoubleArray8217 são ambos tipos de dados simples e serão mapeados conforme necessário no ficheiro WSDL. As classes, no entanto, devem ser derivadas de 8216TRemotable8217 como pode ser visto aqui com 8216TMyEmployee.8217 Derivação 8216TRemotable8217 é necessário para que a classe base 8216TRemotable8217 possa usar RTTI (informações de tipo de tempo de execução) para ler os membros das classes descendentes e torná-las 8216remotable8217, que - is, eles podem ser serializados em, e deserialized fora, de web streams. Isso permite que você envie uma classe 8216TRemotable8217 para o seu serviço ou receba uma devolução. Somente as propriedades publicadas podem ser readwritten ao fluxo, e haveria pouco ponto que põr métodos nestas classes, assim que usá-las como classes simples do transporte de dados e escrever ajudantes para trabalhar com eles. Agora, mude para o arquivo 8216MyServiceImpl. pas8217 para ver a implementação desta interface. Repare que cada um dos métodos tem um método correspondente na classe 8216TMyService8217, que implementa a interface 8216IMyService8217. Cada um desses métodos é um stdcall, e, cada um deles não fazem nada mais do que ecoar os dados que o receber de volta para o chamador. Você pode testar implementações mais aventureiros mais tarde, mas por enquanto, vamos ficar com esses métodos de amostra gerados pelo assistente do projeto. No entanto, there8217s é um problema Se você dar uma olhada no método de exemplo 8216echoMyEmployee8217 gerado pelo assistente, you8217ll notará que ele cria um 8216TMyEmployee8217 como resultado it8217s, mas não copia os valores do parâmetro 8216Value8217 para ele fazer eco. Precisamos corrigir isso, então substitua a implementação de 8216TMyService. echoMyEmployee () 8217 com o seguinte código. Agora nosso serviço está pronto para consumo e testes. Consumindo um serviço de sabão. Agora que temos um serviço para testar, vamos criar um aplicativo cliente para consumir o serviço. Em vez de iniciar um novo projeto a partir do menu principal, we8217ll construí-lo dentro do mesmo grupo de projeto como o projeto StandAloneService. Dessa forma, we8217ll será capaz de executá-los ambos ao mesmo tempo, e depuração quer. No explorador do projeto, clique com o botão direito do mouse no 8216ProjectGroup18217 e selecione 8216Adicionar Novo Projeto8217 - gt 8216VCL Forms Application8217 Agora vamos salvar o projeto em nossa estrutura de diretório, Selecionar 8220File Salvar Alll82218230 Salve os arquivos da seguinte forma8230 SoapServiceSampleClientformsformMain. pas (renomeado de Unit2.pas) SoapServiceSampleClientprojectsSOAPClient. Dproj (renomeado de Projectltxgt. pas) SoapServiceSampleSoapGroup. groupproj (renomeado do ProjectGroup1.groupproj) A partir deste ponto, podemos abrir vários projetos (lado do servidor e do cliente) abrindo o arquivo 8216SoapGroup. groupproj8217. Agora, para consumir o nosso serviço web, precisamos importar o arquivo WSDL para o nosso aplicativo cliente. Para fazer isso, o serviço deve estar em execução, então no gerenciador de projeto, clique duas vezes em 8216StandAloneService8217 para configurá-lo como o projeto padrão (realçado em negrito). Agora execute o projeto usando a opção 8220Run sem depuração8221. It8217s importante que você selecione isso e não a opção 8220Run com depuração8221 porque, enquanto o IDE está depurando um aplicativo que won8217t permite que você execute outro. Isso é mais importante quando quisermos executar os projetos StandAloneService e SOAPClient ao mesmo tempo. We8217ll sempre depuração um, enquanto executando o outro sem depuração. Clique no botão Iniciar para garantir que o serviço esteja funcionando e disponível. Deixe isso em execução e de volta no IDE, clique duas vezes no projeto 8216SOAPClient. exe8217 no gerenciador de projetos para configurá-lo como padrão. Agora, dirija-se a 8220File New Other - gt Delphi Projects WebServices WSDL Importer8221 (pode variar com a versão ou edição do Delphi Rad Studio. O passo 8220Delphi Projects8221 talvez precise ser omitido.) No assistente de importação apresentado, cole o URL do WSDL para o Interface (ponto final) que você deseja importar do serviço. Deixe as outras opções, a menos que saiba que você está usando um proxy e clique em Avançar. No próximo assistente, basta clicar em Avançar e deixar o assistente se preocupar com a versão de SOAP para you8230. A próxima página do assistente fornece uma série de opções que você pode ajustar para mudar a maneira como o analisador WSDL funciona. Isso permite que você importe arquivos WSDL que variam em suas implementações, para interoperabilidade com outros frameworks SOAP, incluindo o framework WCF do Microsoft Microsofts, por exemplo. Como we8217re trabalhando com um serviço Delphi SOAP, nós don8217t necessidade de alterar qualquer uma dessas configurações, então basta clicar em 8216Finish8217. O IDE de Delphi agora criou uma nova unidade, que ele nomeou 8220IMyService18221 8211 I8217m, não é um fã desta convenção de nomenclatura (usando um 822018221) e can8217t renomeamos a unidade para 8220IMyService8221 porque já existe um identificador chamado 8220IMyService8221 dentro da unidade. Então, vamos salvar este arquivo como 8220unitIMyService. pas8221 em 8220SoapServiceSampleClientunitsunitIMyService. pas8221 Agora temos tudo o que precisamos no aplicativo do cliente para chamar o serviço que escrevemos anteriormente, mas nós não temos nenhum tipo de interface do usuário para nossa aplicação. Vamos construir um. No IDE, mude para formMain e solte dois controles TGroupBox e um controle TButton da paleta de ferramentas. Defina a propriedade 8216Caption8217 de cada caixa de grupo para ler 8220Request8221 e 8220Response8221, respectivamente. Além disso, defina a propriedade do botão 8216Caption8217 para ler 8220Echo8221 Em cada caixa de grupo, coloque três controles 8216TLabel8217, dois controles 8216TEdit8217 e um controle 8216TSpinEdit8217, dispostos como se segue8230 (observe que suas caixas de edição podem ter texto onde o meu não faz, não se preocupe com isso). Agora precisamos definir a propriedade 8216Caption8217 de cada um dos rótulos dentro da caixa de solicitação para ler 8216First Name8217. 8216Last Name8217, 8216Salary8217 respectivamente. Repita o mesmo para os rótulos dentro da caixa de resposta. Você pode ter que ajustar o tamanho ea posição dos controles para fazer todos os rótulos ajustar bem. Agora definimos a propriedade 8216Name8217 de cada um dos controles de edição e de edição de rotação. Para aqueles na caixa de pedido we8217ll nomeá-los 8216edtReqFirstName8217, 8216edtReqLastName8217 e 8216spedReqSalary8217 respectivamente. Para aqueles na caixa de resposta we8217ll nomeá-los 8216edtResFirstName8217, 8216edtResLastName8217, 8216spedResSalary8217. Defina também a propriedade 8216Text8217 para cada uma das caixas de edição para uma cadeia vazia. Por fim, clique duas vezes no botão para definir o manipulador 8216OnClick8217 e insira o seguinte código8230 Além disso, lembre-se de adicionar unitIMyService à lista de usos do formulário principal. Agora vamos testar este serviço. Seu servidor 8216StandAloneService. exe8217 ainda deve estar sendo executado em segundo plano, mas se for isn8217t, vá e torne-o o projeto padrão no gerenciador de projetos e clique no botão 8220Run sem depuração8221. Don8217t esqueça de clicar no botão 8282Start8221 e, em seguida, volte para o IDE e defina 8216SOAPClient. exe8217 como o projeto padrão novamente. Execute o projeto SOAPClient. exe e you8217ll ser apresentado com o seguinte8230 Vá em frente e coloque no seu primeiro nome, sobrenome e qualquer número de um salário na caixa de salário em Pedido. Nota: I8217ve apertou a caixa de salário para valores inteiros apenas por conveniência, porque eu escolhi usar o controle 8216TSpinEdit8217 para este exemplo. Clique no botão 8216Echo8217. Se tudo correu bem, você deve ver o seguinte: Excina Isn8217t. Quando você clicou nesse botão, os valores na caixa de solicitação foram empacotados e enviados ao método de servidores 8216echoMyEmployee8217, que os copiou em uma resposta e os enviou de volta. O resultado foi então desdobrado para a caixa de resposta. Você acabou de chamar com sucesso o seu serviço SOAP, parabéns. Isto é onde você deve quebrar de ler isto e ir experimentar com fazer o 8216echoMyEmployee8217 método mais sofisticado, ou talvez adicionar novos métodos de seu próprio. Como uma nota lateral, você pode adicionar novas interfaces (pontos finais) definindo o projeto do servidor como o projeto padrão e, em seguida, selecionando 8220File New Other - gt Delphi Projects - gt Web Services - gt SOAP Server Interface8221 e seguindo o assistente. Quando você estiver fazendo experiências com novas interfaces, novos métodos e fazendo o serviço fazer qualquer coisa velha que você gosta, volte aqui e veja como transformá-lo em um ISAP que você pode empacotar para instalação em um servidor IIS. Criando um serviço ISAPI SOAP para o IIS. Para o início deste post, prometi que i8217d mostrar-lhe como transferir o seu serviço web do executável de serviço autônomo que nós construímos, para um plug-in ISAPI para servidor IIS. Então aqui está. Abra o grupo de projeto 8216SoapGroup8217 que criamos anteriormente e no gerenciador do projeto, clique com o botão direito do mouse em 8216SoapGroup8217 e selecione 8216Adicionar Novo Projeto8217 Agora selecione 8220Delphi Projects - gt WebServices - gt SOAP Server Application8221 We8217ve passado por esse assistente antes, ao criar um serviço SOAP Como um serviço autônomo. Desta vez no entanto, selecionamos 8220ISAPI dynamic link library8221 a partir desta página do wizard8230 Execute o resto do assistente como fizemos anteriormente, até chegar a esta caixa de diálogo8230 Desta vez clique em 8220NO8221 porque já temos uma interface no projeto autônomo que Queremos importar. Agora, antes de salvar seu novo projeto, clique com o botão direito do mouse em 8216WebModuleUnit1.pas8217 no gerenciador de projetos e selecione 8220Remover do Project8221. Certifique-se de que você está removendo isso do novo projeto e não o descrito em 8220StandAloneService. exe8221. Duas caixas de diálogo serão exibidas, a primeira pergunta se você tiver certeza de que deseja remover o módulo do projeto, clique em 8220YES8221. A segunda caixa de diálogo pergunta se você deseja Para salvar o módulo, já temos um em outro projeto, que we8217re planeja importar. Então diga a esta caixa de diálogo 8220NO8221 Agora que o módulo é removido, vá em frente e selecione Salvar tudo. Você conhece a broca, salve o arquivo do projeto como 8220SoapServiceSampleServerprojectsISAPIService. pas8221 Agora você possui um projeto ISAPI, mas não faz nada, não possui módulos para solicitar pedidos de serviços e nenhum serviço para ordená-los. Portanto, precisamos importar essas coisas do nosso projeto anterior único. No Gerenciador de projeto, clique com o botão direito do mouse no projeto 8220ISAPIService. dll8221 e selecione 8220Add8221 no menu. Navegue para 8216SoapServiceSampleServerunits8217 e selecione todos os três arquivos .. Depois de clicar em 8220Open8221 you8217ll, veja que os três arquivos do projeto 8216StandAloneService. exe8217 agora são parte do projeto 8216ISAPIService. dll8217 também. Como uma nota importante. O módulo web e as interfaces agora são compartilhados entre os dois projetos. Isso significa que você pode usar o 8216StandAloneService. exe8217 projeto dentro do depurador IDE para testar seu serviço antes de carregar o arquivo 8216ISAPIService. dll8217 para seu servidor IIS. Caso você adicione interfaces a um projeto, use a opção 8220Add8221 que usamos acima para importá-las para o outro e, claro, esteja ciente de que quaisquer outras alterações nesses arquivos de origem afetarão ambos os projetos. Clique com o botão direito do mouse em 8220ISAPIService. dll8221 e selecione 8220Build8221 no menu que aparece. Uma vez que o edifício está completo, vá e dê uma olhada dentro do 8220SoapServiceSampleServerprojectsWin32Debug8221 e you8217ll veja um arquivo chamado 8220ISAPIService. dll8221 Esta é efetivamente a dll que you8217ll deseja enviar para o seu servidor IIS. Por predefinição, no entanto, esta é uma dll de 32 bits e foi criada utilizando o perfil de compilação de depuração. Servidores IIS modernos são servidores de 64 bits, portanto, volte para o IDE e adicione o destino de 64 bits e um perfil de criação de release para o seu projeto. É isso. Você tem um serviço SOAP em stand-alone e IIS plugin formulário, e um aplicativo cliente que pode ser usado para testá-lo. Apenas se você não conseguir seguir minhas instruções acima por qualquer motivo, I8217ve adicionou o arquivo de projeto ao meu repositório de subversão público em :: Editar: O servidor de subversão foi desativado. Substituiu o link svn com o arquivo zip, faça o download aqui: SoapServiceSample

No comments:

Post a Comment