I am trying to test sending a message using a HAPI http client using the 
following configuration. The server starts and the message is sent but


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
import ca.uhn.hl7v2.hoh.hapi.client.HohClientSimple;
import ca.uhn.hl7v2.hoh.sockets.TlsSocketFactory;
import ca.uhn.hl7v2.parser.PipeParser;

@Component
@PropertySource(value = {"classpath:connection.properties" })
public class HttpClientConfig {

               @Autowired
               private Environment env;

               @Bean
               public HohClientSimple httpClient() {
                              HohClientSimple client = new 
HohClientSimple(env.getProperty("http.host"), 
Integer.parseInt(env.getProperty("http.port")), 
env.getProperty("http.uri.path"),PipeParser.getInstanceWithNoValidation());
                              client.setSocketFactory(new TlsSocketFactory());
                              return client;
               }
}


import java.io.IOException;
import java.util.Map;

import ca.uhn.hl7v2.AcknowledgmentCode;
import ca.uhn.hl7v2.HL7Exception;
import ca.uhn.hl7v2.model.Message;
import ca.uhn.hl7v2.protocol.ReceivingApplication;
import ca.uhn.hl7v2.protocol.ReceivingApplicationException;

public class MessageHandler implements ReceivingApplication {

       @Override
       public Message processMessage(Message theMessage, Map<String, Object> 
theMetadata)
                    throws ReceivingApplicationException, HL7Exception {

             Message response = null;
             try {
                    response = theMessage.generateACK();
             } catch (IOException e) {
                    e.printStackTrace();
             }
             return response;
       }

       @Override
       public boolean canProcess(Message theMessage) {
             return true;
       }

}



import java.io.IOException;

import javax.servlet.Servlet;

import org.eclipse.jetty.server.Server;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;



import ca.uhn.hl7v2.DefaultHapiContext;
import ca.uhn.hl7v2.HL7Exception;
import ca.uhn.hl7v2.app.Connection;
import ca.uhn.hl7v2.hoh.api.DecodeException;
import ca.uhn.hl7v2.hoh.api.EncodeException;
import ca.uhn.hl7v2.hoh.api.ISendable;
import ca.uhn.hl7v2.hoh.hapi.api.MessageSendable;
import ca.uhn.hl7v2.hoh.hapi.client.HohClientSimple;
import ca.uhn.hl7v2.hoh.llp.Hl7OverHttpLowerLayerProtocol;
import ca.uhn.hl7v2.hoh.util.ServerRoleEnum;
import ca.uhn.hl7v2.llp.LLPException;
import ca.uhn.hl7v2.llp.LowerLayerProtocol;
import ca.uhn.hl7v2.model.DataTypeException;
import ca.uhn.hl7v2.model.Message;
import ca.uhn.hl7v2.model.v25.message.ADT_A01;
import ca.uhn.hl7v2.model.v25.message.ADT_A38;
import ca.uhn.hl7v2.model.v25.segment.DB1;
import ca.uhn.hl7v2.model.v25.segment.MSH;
import ca.uhn.hl7v2.model.v25.segment.SFT;
import ca.uhn.hl7v2.parser.EncodingNotSupportedException;

import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {HttpClientConfig.class},loader = 
AnnotationConfigContextLoader.class)
public class SendingRequestTest {

               @Autowired
               private HohClientSimple httpClient;
               @Before
    public void initServer() throws Exception{
               Server server = new Server(5050);
                              ServletContextHandler handler = new 
ServletContextHandler(server, "/testURL");
                              Servlet servlet=new HttpMessageReceiver();
                              handler.addServlet(new ServletHolder(servlet), 
"/appContext");
                              server.start();
                              System.out.println("Server started!!");
    }
    @Test
    public void testSendReceive(){

               try {
                              ADT_A38 adt=new ADT_A38();
               MSH msh1=adt.getMSH();
               msh1.getMsh1_FieldSeparator().setValue("|");
               msh1.getMsh2_EncodingCharacters().setValue("^~\\&");
               SFT sft=adt.getSFT();
               adt.insertSFT(sft, 0);
               DB1 db1=adt.getDB1();
               adt.insertDB1(db1, 0);
               ISendable sendable = new MessageSendable(adt);
                                             //Message 
message=createTestMessage();
                              httpClient.sendAndReceiveMessage(sendable);

                              } catch (DataTypeException e) {
                                             e.printStackTrace();
                                             System.out.println("datatype 
problem");
                              } catch (EncodingNotSupportedException e) {
                                             e.printStackTrace();
                                             System.out.println("encode not 
supported problem");
                                             System.exit(1);
                              } catch (HL7Exception e) {
                                                            e.printStackTrace();
                              } catch (DecodeException e) {
                                             e.printStackTrace();
                                             System.out.println("decode 
problem");
                                             System.exit(1);
                              } catch (IOException e) {
                                             e.printStackTrace();
                                             System.exit(1);
                              } catch (EncodeException e) {
                                             e.printStackTrace();
                                             System.out.println("encode 
problem, not that it's not supported");
                              }

    }

               }

I get the following error:

   Feb 19, 2016 1:14:25 PM org.springframework.context.support.GenericApplicati 
                                                                                
                                                 onContext prepareRefresh
    INFO: Refreshing 
org.springframework.context.support.GenericApplicationConte                     
                                                                                
                             xt@3b733273: startup date [Fri Feb 19 13:14:25 CST 
2016]; root of context hierar                                                   
                                                                               
chy
    SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
    SLF4J: Defaulting to no-operation (NOP) logger implementation
    SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further 
de                                                                              
                                                    tails.
SendingRequestTest > testSendReceive STANDARD_OUT
    Server started!!

SendingRequestTest > testSendReceive STANDARD_ERR                               
                                                                                
                   OR
    ca.uhn.hl7v2.hoh.api.NonHl7ResponseException: Invalid Content-Type: 
text/html                                                                       
                                                           l
        at 
ca.uhn.hl7v2.hoh.encoder.AbstractHl7OverHttpDecoder.doReadContentsFro           
                                                                                
                                       
mInputStreamAndDecode(AbstractHl7OverHttpDecoder.java:233)
        at 
ca.uhn.hl7v2.hoh.encoder.AbstractHl7OverHttpDecoder.readHeadersAndCon           
                                                                                
                                       
tentsFromInputStreamAndDecode(AbstractHl7OverHttpDecoder.java:541)
        at 
ca.uhn.hl7v2.hoh.raw.client.AbstractRawClient.doSendAndReceiveInterna           
                                                                                
                                       l(AbstractRawClient.java:159)
        ....

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Hl7api-devel mailing list
Hl7api-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hl7api-devel

Reply via email to