# HeaderInjector doesn't work

**URL:** <https://discuss.elastic.co/t/headerinjector-doesnt-work/229415>\
**Category:** APM\
**Tags:** java\
**Created:** [April 23, 2020, 8:58am UTC](https://discuss.elastic.co/t/headerinjector-doesnt-work/229415 "2020-04-23T08:58:07Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![hyhong](https://avatars.discourse-cdn.com/v4/letter/h/3bc359/32.png) [@hyhong](https://discuss.elastic.co/u/hyhong)\
**Post date:** [April 23, 2020, 8:58am UTC](https://discuss.elastic.co/t/headerinjector-doesnt-work/229415/1 "2020-04-23T08:58:07Z")

</div>

I use HeaderInjector for a rpc call,but it doesn't form a trace.The client code is:

```auto
    Transaction transaction = ElasticApm.currentTransaction();
    Span span = transaction.startSpan("external", "tcp", null).setName(methodName);
    		span.activate();
    		try{
    			span.injectTraceHeaders(new HeaderInjector() {
    				@Override
    				public void addHeader(String headerName, String headerValue) {
    					context.put(headerName, headerValue);
    				}
    			});
    		} catch (Exception e) {
    			span.captureException(e);
                span.end();
    		}

```

The server code:

```auto
    Transaction transaction = ElasticApm.startTransactionWithRemoteParent(new HeaderExtractor() {
    			@Override
    			public String getFirstHeader(String headerName) {
    				return context.get(headerName);
    			}
    		});
    	    transaction.activate();
    	    try {
    	    	transaction.setName("tcp-server");
    		    transaction.setType(Transaction.TYPE_REQUEST);
    	    } catch (Exception e) {
    	        transaction.captureException(e);
                transaction.end();
    	    }

```

---

<div class="post-metadata">

**Author:** ![felixbarny](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/felixbarny/32/27341_2.png) [@felixbarny](https://discuss.elastic.co/u/felixbarny)\
**Post date:** [April 23, 2020, 10:38am UTC](https://discuss.elastic.co/t/headerinjector-doesnt-work/229415/2 "2020-04-23T10:38:51Z")

</div>

Could you add log statements to `addHeader` and `getFirstHeader` to see the values it adds and gets?

Also, you should use try-with-resources blocks when using `activate()`. See the example here: [https://www.elastic.co/guide/en/apm/agent/java/current/public-api.html#api-transaction-inject-trace-headers](https://www.elastic.co/guide/en/apm/agent/java/current/public-api.html#api-transaction-inject-trace-headers)

---

<div class="post-metadata">

**Author:** ![hyhong](https://avatars.discourse-cdn.com/v4/letter/h/3bc359/32.png) [@hyhong](https://discuss.elastic.co/u/hyhong)\
**Post date:** [April 24, 2020, 12:15am UTC](https://discuss.elastic.co/t/headerinjector-doesnt-work/229415/3 "2020-04-24T00:15:03Z")

</div>

If I creat a new transtraction it’s work,but if achieve current transtraction it’s doesn’t work

---

<div class="post-metadata">

**Author:** ![felixbarny](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/felixbarny/32/27341_2.png) [@felixbarny](https://discuss.elastic.co/u/felixbarny)\
**Post date:** [April 24, 2020, 4:52am UTC](https://discuss.elastic.co/t/headerinjector-doesnt-work/229415/4 "2020-04-24T04:52:08Z")

</div>

That probably means that there is no current transaction.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [May 15, 2020, 12:52am UTC](https://discuss.elastic.co/t/headerinjector-doesnt-work/229415/5 "2020-05-15T00:52:10Z")

</div>

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.
